Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>of course you can. <code>ImageFormat</code> doesn't mean much. <code>ImageCodecInfo</code> has much more meaning.</p> <p>red_dot.png</p> <p><img src="https://i.stack.imgur.com/PrNbA.png" alt="red_dot.png"></p> <pre><code>&lt;a href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="&gt; &lt;img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="red_dot.png" title="red_dot.png"/&gt; &lt;/a&gt; </code></pre> <p>code:</p> <pre><code>using System.Linq; //... //get image var file_bytes = System.Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="); var file_stream = new System.IO.MemoryStream(file_bytes); var file_image = System.Drawing.Image.FromStream(file_stream); //list image formats var image_formats = typeof(System.Drawing.Imaging.ImageFormat).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).ToList().ConvertAll(property =&gt; property.GetValue(null, null)); System.Diagnostics.Debug.WriteLine(image_formats.Count, "image_formats"); foreach(var image_format in image_formats) { System.Diagnostics.Debug.WriteLine(image_format, "image_formats"); } //get image format var file_image_format = typeof(System.Drawing.Imaging.ImageFormat).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).ToList().ConvertAll(property =&gt; property.GetValue(null, null)).Single(image_format =&gt; image_format.Equals(file_image.RawFormat)); System.Diagnostics.Debug.WriteLine(file_image_format, "file_image_format"); //list image codecs var image_codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders().ToList(); System.Diagnostics.Debug.WriteLine(image_codecs.Count, "image_codecs"); foreach(var image_codec in image_codecs) { System.Diagnostics.Debug.WriteLine(image_codec.CodecName + ", mime: " + image_codec.MimeType + ", extension: " + @image_codec.FilenameExtension, "image_codecs"); } //get image codec var file_image_format_codec = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders().ToList().Single(image_codec =&gt; image_codec.FormatID == file_image.RawFormat.Guid); System.Diagnostics.Debug.WriteLine(file_image_format_codec.CodecName + ", mime: " + file_image_format_codec.MimeType + ", extension: " + file_image_format_codec.FilenameExtension, "image_codecs", "file_image_format_type"); </code></pre> <p>debug output:</p> <pre><code>image_formats: 10 image_formats: MemoryBMP image_formats: Bmp image_formats: Emf image_formats: Wmf image_formats: Gif image_formats: Jpeg image_formats: Png image_formats: Tiff image_formats: Exif image_formats: Icon file_image_format: Png image_codecs: 8 image_codecs: Built-in BMP Codec, mime: image/bmp, extension: *.BMP;*.DIB;*.RLE image_codecs: Built-in JPEG Codec, mime: image/jpeg, extension: *.JPG;*.JPEG;*.JPE;*.JFIF image_codecs: Built-in GIF Codec, mime: image/gif, extension: *.GIF image_codecs: Built-in EMF Codec, mime: image/x-emf, extension: *.EMF image_codecs: Built-in WMF Codec, mime: image/x-wmf, extension: *.WMF image_codecs: Built-in TIFF Codec, mime: image/tiff, extension: *.TIF;*.TIFF image_codecs: Built-in PNG Codec, mime: image/png, extension: *.PNG image_codecs: Built-in ICO Codec, mime: image/x-icon, extension: *.ICO Built-in PNG Codec, mime: image/png, extension: *.PNG </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload