public void DecodeBmp256() { string bmp256 = Path.Join("Assets", "Images", "256colorbmp.bmp"); byte[] bytes = File.ReadAllBytes(bmp256); Assert.True(BmpFormat.IsBmp(bytes)); byte[] decodedPixelData = BmpFormat.Decode(bytes, out BmpFileHeader fileHeader); Assert.True(decodedPixelData != null); Runner.ExecuteAsLoop(_ => { var r = new Texture( new Vector2(fileHeader.Width, fileHeader.Height), decodedPixelData, PixelFormat.Bgra ) { FlipY = true }; RenderComposer composer = Engine.Renderer.StartFrame(); composer.RenderSprite(Vector3.Zero, new Vector2(fileHeader.Width, fileHeader.Height), Color.White, r); Engine.Renderer.EndFrame(); Runner.VerifyScreenshot(ResultDb.Bmp256ColorDecode); r.Dispose(); }).WaitOne(); }
protected override void CreateInternal(byte[] data) { byte[] pixels = null; var width = 0; var height = 0; var flipped = false; // Whether the image was uploaded flipped - top to bottom. PerfProfiler.ProfilerEventStart("Decoding Image", "Loading"); // Check if PNG. if (PngFormat.IsPng(data)) { pixels = PngFormat.Decode(data, out PngFileHeader header); width = header.Width; height = header.Height; } // Check if BMP. else if (BmpFormat.IsBmp(data)) { pixels = BmpFormat.Decode(data, out BmpFileHeader header); width = header.Width; height = header.Height; flipped = true; } if (pixels == null || width == 0 || height == 0) { Engine.Log.Warning($"Couldn't load texture - {Name}.", MessageSource.AssetLoader); return; } PerfProfiler.ProfilerEventEnd("Decoding Image", "Loading"); UploadTexture(new Vector2(width, height), pixels, flipped); }
protected override void CreateInternal(ReadOnlyMemory <byte> data) { byte[] pixels = null; Vector2 size = Vector2.Zero; var flipped = false; // Whether the image was uploaded flipped - top to bottom. var format = PixelFormat.Unknown; PerfProfiler.ProfilerEventStart("Decoding Image", "Loading"); // Magic number check to find out format. if (PngFormat.IsPng(data)) { pixels = PngFormat.Decode(data, out PngFileHeader header); size = header.Size; format = header.PixelFormat; } else if (BmpFormat.IsBmp(data)) { pixels = BmpFormat.Decode(data, out BmpFileHeader header); size = new Vector2(header.Width, header.HeaderSize); flipped = true; format = PixelFormat.Bgra; } else if (ImgBinFormat.IsImgBin(data)) { pixels = ImgBinFormat.Decode(data, out ImgBinFileHeader header); size = header.Size; format = header.Format; } if (pixels == null || size.X == 0 || size.Y == 0) { Texture = Texture.EmptyWhiteTexture; Engine.Log.Warning($"Couldn't load texture - {Name}.", MessageSource.AssetLoader); return; } ByteSize = pixels.Length; PerfProfiler.ProfilerEventEnd("Decoding Image", "Loading"); UploadTexture(size, pixels, flipped, format); }
public JsonResult <List <PropertyItem> > Get(string file) { try { FileStream original = File.Open(Utils._storagePath + "\\" + file, FileMode.OpenOrCreate); FileFormatChecker fileFormatChecker = new FileFormatChecker(original); DocumentType documentType = fileFormatChecker.GetDocumentType(); List <PropertyItem> values = new List <PropertyItem>(); if (fileFormatChecker.VerifyFormat(documentType)) { switch (documentType) { case DocumentType.Doc: DocFormat docFormat = new DocFormat(original); values = AppendMetadata(docFormat.GetMetadata(), values); break; case DocumentType.Xls: XlsFormat xlsFormat = new XlsFormat(original); values = AppendMetadata(xlsFormat.GetMetadata(), values); break; case DocumentType.Pdf: PdfFormat pdfFormat = new PdfFormat(original); values = AppendMetadata(pdfFormat.GetMetadata(), values); values = AppendXMPData(pdfFormat.GetXmpData(), values); break; case DocumentType.Png: PngFormat pngFormat = new PngFormat(original); values = AppendMetadata(pngFormat.GetMetadata(), values); values = AppendXMPData(pngFormat.GetXmpData(), values); break; case DocumentType.Jpeg: JpegFormat jpegFormat = new JpegFormat(original); values = AppendMetadata(jpegFormat.GetMetadata(), values); values = AppendXMPData(jpegFormat.GetXmpData(), values); break; case DocumentType.Gif: GifFormat gifFormat = new GifFormat(original); values = AppendMetadata(gifFormat.GetMetadata(), values); values = AppendXMPData(gifFormat.GetXmpData(), values); break; case DocumentType.Bmp: BmpFormat bmpFormat = new BmpFormat(original); values = AppendMetadata(bmpFormat.GetMetadata(), values); break; case DocumentType.Msg: OutlookMessage outlookMessage = new OutlookMessage(original); values = AppendMetadata(outlookMessage.GetMsgInfo(), values); break; case DocumentType.Eml: EmlFormat emlFormat = new EmlFormat(original); values = AppendMetadata(emlFormat.GetEmlInfo(), values); break; case DocumentType.Dwg: DwgFormat dwgFormat = new DwgFormat(original); values = AppendMetadata(dwgFormat.GetMetadata(), values); break; case DocumentType.Dxf: DxfFormat dxfFormat = new DxfFormat(original); values = AppendMetadata(dxfFormat.GetMetadata(), values); break; default: DocFormat defaultDocFormat = new DocFormat(original); values = AppendMetadata(defaultDocFormat.GetMetadata(), values); break; } return(Json(values)); } else { throw new Exception("File format not supported."); } } catch (Exception exc) { throw exc; } }
/// <summary> /// Reads metadata from Bmp file /// </summary> public static void GetHeaderProperties() { try { //ExStart:GetHeaderPropertiesInBmp // initialize BmpFormat BmpFormat bmpFormat = new BmpFormat(Common.MapSourceFilePath(EmfFilePath)); // get BMP header BmpHeader header = bmpFormat.HeaderInfo; // display bits per pixel Console.WriteLine("Bits per pixel: {0}", header.BitsPerPixel); // display header size Console.WriteLine("Header size: {0}", header.HeaderSize); // display image size Console.WriteLine("Image size: {0}", header.ImageSize); //ExEnd:GetHeaderPropertiesInBmp } catch (Exception exp) { Console.WriteLine(exp.Message); } }
//ExEnd:SourceBmpFilePath /// <summary> /// Reads metadata from Bmp file /// </summary> public static void GetMetadataProperties() { try { //ExStart:GetMetadatPropertiesInBmp // initialize BmpFormat BmpFormat bmpFormat = new BmpFormat(Common.MapSourceFilePath(EmfFilePath)); // get width int width = bmpFormat.Width; // get height int height = bmpFormat.Height; //display height and width in console Console.Write("Width: {0}, Height: {1}", width, height); //ExEnd:GetMetadatPropertiesInBmp } catch (Exception exp) { Console.WriteLine(exp.Message); } }
public HttpResponseMessage Get(string file) { try { File.Copy(Utils._storagePath + "\\" + file, Utils._storagePath + "\\Cleaned_" + file, true); FileStream original = File.Open(Utils._storagePath + "\\Cleaned_" + file, FileMode.Open, FileAccess.ReadWrite); FileFormatChecker fileFormatChecker = new FileFormatChecker(original); DocumentType documentType = fileFormatChecker.GetDocumentType(); if (fileFormatChecker.VerifyFormat(documentType)) { switch (documentType) { case DocumentType.Doc: DocFormat docFormat = new DocFormat(original); docFormat.CleanMetadata(); docFormat.ClearBuiltInProperties(); docFormat.ClearComments(); docFormat.ClearCustomProperties(); docFormat.RemoveHiddenData(new DocInspectionOptions(DocInspectorOptionsEnum.All)); docFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Xls: XlsFormat xlsFormat = new XlsFormat(original); xlsFormat.CleanMetadata(); xlsFormat.ClearBuiltInProperties(); xlsFormat.ClearContentTypeProperties(); xlsFormat.ClearCustomProperties(); xlsFormat.RemoveHiddenData(new XlsInspectionOptions(XlsInspectorOptionsEnum.All)); xlsFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Pdf: PdfFormat pdfFormat = new PdfFormat(original); pdfFormat.CleanMetadata(); pdfFormat.ClearBuiltInProperties(); pdfFormat.ClearCustomProperties(); pdfFormat.RemoveHiddenData(new PdfInspectionOptions(PdfInspectorOptionsEnum.All)); pdfFormat.RemoveXmpData(); pdfFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Png: PngFormat pngFormat = new PngFormat(original); pngFormat.CleanMetadata(); pngFormat.RemoveXmpData(); pngFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Jpeg: JpegFormat jpegFormat = new JpegFormat(original); jpegFormat.CleanMetadata(); jpegFormat.RemoveExifInfo(); jpegFormat.RemoveGpsLocation(); jpegFormat.RemoveIptc(); jpegFormat.RemovePhotoshopData(); jpegFormat.RemoveXmpData(); jpegFormat.Save(original); break; case DocumentType.Bmp: BmpFormat bmpFormat = new BmpFormat(original); bmpFormat.CleanMetadata(); bmpFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Gif: GifFormat gifFormat = new GifFormat(original); gifFormat.CleanMetadata(); gifFormat.RemoveXmpData(); gifFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Msg: OutlookMessage outlookMessage = new OutlookMessage(original); outlookMessage.CleanMetadata(); outlookMessage.RemoveAttachments(); outlookMessage.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Eml: EmlFormat emlFormat = new EmlFormat(original); emlFormat.CleanMetadata(); emlFormat.RemoveAttachments(); emlFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Dwg: DwgFormat dwgFormat = new DwgFormat(original); dwgFormat.CleanMetadata(); dwgFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; case DocumentType.Dxf: DxfFormat dxfFormat = new DxfFormat(original); dxfFormat.CleanMetadata(); dxfFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; default: DocFormat defaultDocFormat = new DocFormat(original); defaultDocFormat.CleanMetadata(); defaultDocFormat.ClearBuiltInProperties(); defaultDocFormat.ClearComments(); defaultDocFormat.ClearCustomProperties(); defaultDocFormat.RemoveHiddenData(new DocInspectionOptions(DocInspectorOptionsEnum.All)); defaultDocFormat.Save(Utils._storagePath + "\\Cleaned_" + file); break; } } else { throw new Exception("File format not supported."); } using (var ms = new MemoryStream()) { original = File.OpenRead(Utils._storagePath + "\\Cleaned_" + file); original.CopyTo(ms); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(ms.ToArray()) }; result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = "Cleaned_" + file }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); original.Close(); File.Delete(Utils._storagePath + "\\Cleaned_" + file); return(result); } } catch (Exception exc) { throw exc; } }