Beispiel #1
0
        internal void Initialize()
        {
#if CORE || GDI || WPF
            if (_importedImage != null)
            {
                ImportedImageJpeg iiJpeg = _importedImage as ImportedImageJpeg;
                // In PDF there are two formats: JPEG and PDF bitmap.
                if (iiJpeg != null)
                {
                    _format = XImageFormat.Jpeg;
                }
                else
                {
                    _format = XImageFormat.Png;
                }
                return;
            }
#endif

#if CORE_WITH_GDI
            if (_gdiImage != null)
            {
                // ImageFormat has no overridden Equals function.

                //....
                if (this._path != null)
                {
                    switch (System.IO.Path.GetExtension(_path))
                    {
                    case ".jpg":
                        _format = XImageFormat.Jpeg;
                        break;

                    case ".png":
                        _format = XImageFormat.Png;
                        break;

                    case ".gif":
                        _format = XImageFormat.Gif;
                        break;
                    }
                }

                //string guid;
                //try
                //{
                //    Lock.EnterGdiPlus();
                //    guid = _gdiImage.RawFormat.Guid.ToString("B").ToUpper();
                //}
                //finally
                //{
                //    Lock.ExitGdiPlus();
                //}

                //switch (guid)
                //{
                //    case "{B96B3CAA-0728-11D3-9D7B-0000F81EF32E}":  // memoryBMP
                //    case "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}":  // bmp
                //    case "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}":  // png
                //        _format = XImageFormat.Png;
                //        break;

                //    case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":  // jpeg
                //        _format = XImageFormat.Jpeg;
                //        break;

                //    case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":  // gif
                //        _format = XImageFormat.Gif;
                //        break;

                //    case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":  // tiff
                //        _format = XImageFormat.Tiff;
                //        break;

                //    case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":  // icon
                //        _format = XImageFormat.Icon;
                //        break;

                //    case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":  // emf
                //    case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":  // wmf
                //    case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":  // exif
                //    case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":  // photoCD
                //    case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":  // flashPIX

                //    default:
                //        throw new InvalidOperationException("Unsupported image format.");
                //}
                return;
            }
#endif
        }
Beispiel #2
0
        internal void Initialize()
        {
            if (_importedImage != null)
            {
                ImportedImageJpeg iiJpeg = _importedImage as ImportedImageJpeg;
                // In PDF there are two formats: JPEG and PDF bitmap.
                if (iiJpeg != null)
                {
                    _format = XImageFormat.Jpeg;
                }
                else
                {
                    _format = XImageFormat.Png;
                }
                return;
            }

            if (_gdiImage != null)
            {
                // ImageFormat has no overridden Equals function.
                string guid;
                try
                {
                    Lock.EnterGdiPlus();
                    guid = _gdiImage.RawFormat.Guid.ToString("B").ToUpper();
                }
                finally { Lock.ExitGdiPlus(); }

                switch (guid)
                {
                case "{B96B3CAA-0728-11D3-9D7B-0000F81EF32E}":      // memoryBMP
                case "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}":      // bmp
                case "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}":      // png
                    _format = XImageFormat.Png;
                    break;

                case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":      // jpeg
                    _format = XImageFormat.Jpeg;
                    break;

                case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":      // gif
                    _format = XImageFormat.Gif;
                    break;

                case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":      // tiff
                    _format = XImageFormat.Tiff;
                    break;

                case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":      // icon
                    _format = XImageFormat.Icon;
                    break;

                case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":      // emf
                case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":      // wmf
                case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":      // exif
                case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":      // photoCD
                case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":      // flashPIX

                default:
                    throw new InvalidOperationException("Unsupported image format.");
                }
            }
        }
Beispiel #3
0
        internal void Initialize()
        {
#if CORE || GDI || WPF
            if (_importedImage != null)
            {
                ImportedImageJpeg iiJpeg = _importedImage as ImportedImageJpeg;
                // In PDF there are two formats: JPEG and PDF bitmap.
                if (iiJpeg != null)
                {
                    _format = XImageFormat.Jpeg;
                }
                else
                {
                    _format = XImageFormat.Png;
                }
                return;
            }
#endif

#if CORE_WITH_GDI
            if (_gdiImage != null)
            {
                // ImageFormat has no overridden Equals function.
                string guid;
                try
                {
                    Lock.EnterGdiPlus();
                    guid = _gdiImage.RawFormat.Guid.ToString("B").ToUpper();
                }
                finally
                {
                    Lock.ExitGdiPlus();
                }

                switch (guid)
                {
                case "{B96B3CAA-0728-11D3-9D7B-0000F81EF32E}":      // memoryBMP
                case "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}":      // bmp
                case "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}":      // png
                    _format = XImageFormat.Png;
                    break;

                case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":      // jpeg
                    _format = XImageFormat.Jpeg;
                    break;

                case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":      // gif
                    _format = XImageFormat.Gif;
                    break;

                case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":      // tiff
                    _format = XImageFormat.Tiff;
                    break;

                case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":      // icon
                    _format = XImageFormat.Icon;
                    break;

                case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":      // emf
                case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":      // wmf
                case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":      // exif
                case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":      // photoCD
                case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":      // flashPIX

                default:
                    throw new InvalidOperationException("Unsupported image format.");
                }
                return;
            }
#endif
#if GDI
            if (_gdiImage != null)
            {
                // ImageFormat has no overridden Equals function.
                string guid;
                try
                {
                    Lock.EnterGdiPlus();
                    guid = _gdiImage.RawFormat.Guid.ToString("B").ToUpper();
                }
                finally { Lock.ExitGdiPlus(); }

                switch (guid)
                {
                case "{B96B3CAA-0728-11D3-9D7B-0000F81EF32E}":      // memoryBMP
                case "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}":      // bmp
                case "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}":      // png
                    _format = XImageFormat.Png;
                    break;

                case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":      // jpeg
                    _format = XImageFormat.Jpeg;
                    break;

                case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":      // gif
                    _format = XImageFormat.Gif;
                    break;

                case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":      // tiff
                    _format = XImageFormat.Tiff;
                    break;

                case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":      // icon
                    _format = XImageFormat.Icon;
                    break;

                case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":      // emf
                case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":      // wmf
                case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":      // exif
                case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":      // photoCD
                case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":      // flashPIX

                default:
                    throw new InvalidOperationException("Unsupported image format.");
                }
                return;
            }
#endif
#if WPF
#if !SILVERLIGHT
            if (_wpfImage != null)
            {
                //string filename = GetImageFilename(_wpfImage);
                // WPF treats all images as images.
                // We give JPEG images a special treatment.
                // Test if it's a JPEG.
                bool isJpeg = IsJpeg; // TestJpeg(filename);
                if (isJpeg)
                {
                    _format = XImageFormat.Jpeg;
                    return;
                }

                string pixelFormat = _wpfImage.Format.ToString();
                switch (pixelFormat)
                {
                case "Bgr32":
                case "Bgra32":
                case "Pbgra32":
                    _format = XImageFormat.Png;
                    break;

                //case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":  // jpeg
                //  format = XImageFormat.Jpeg;
                //  break;

                //case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":  // gif
                case "BlackWhite":
                case "Indexed1":
                case "Indexed4":
                case "Indexed8":
                case "Gray8":
                    _format = XImageFormat.Gif;
                    break;

                //case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":  // tiff
                //  format = XImageFormat.Tiff;
                //  break;

                //case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":  // icon
                //  format = XImageFormat.Icon;
                //  break;

                //case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":  // emf
                //case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":  // wmf
                //case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":  // exif
                //case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":  // photoCD
                //case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":  // flashPIX

                default:
                    Debug.Assert(false, "Unknown pixel format: " + pixelFormat);
                    _format = XImageFormat.Gif;
                    break;    // throw new InvalidOperationException("Unsupported image format.");
                }
            }
#else
            if (_wpfImage != null)
            {
                // TODO improve implementation for Silverlight.

                //string pixelFormat = "jpg"; //_wpfImage...Format.ToString();
                //string filename = GetImageFilename(_wpfImage);
                // WPF treats all images as images.
                // We give JPEG images a special treatment.
                // Test if it's a JPEG:
                bool isJpeg = true; // IsJpeg; // TestJpeg(filename);
                if (isJpeg)
                {
                    _format = XImageFormat.Jpeg;
                    return;
                }

                /*
                 * switch (pixelFormat)
                 * {
                 *  case "Bgr32":
                 *  case "Bgra32":
                 *  case "Pbgra32":
                 *      _format = XImageFormat.Png;
                 *      break;
                 *
                 *  //case "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}":  // jpeg
                 *  //  format = XImageFormat.Jpeg;
                 *  //  break;
                 *
                 *  //case "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}":  // gif
                 *  case "BlackWhite":
                 *  case "Indexed1":
                 *  case "Indexed4":
                 *  case "Indexed8":
                 *  case "Gray8":
                 *      _format = XImageFormat.Gif;
                 *      break;
                 *
                 *  //case "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}":  // tiff
                 *  //  format = XImageFormat.Tiff;
                 *  //  break;
                 *
                 *  //case "{B96B3CB5-0728-11D3-9D7B-0000F81EF32E}":  // icon
                 *  //  format = XImageFormat.Icon;
                 *  //  break;
                 *
                 *  //case "{B96B3CAC-0728-11D3-9D7B-0000F81EF32E}":  // emf
                 *  //case "{B96B3CAD-0728-11D3-9D7B-0000F81EF32E}":  // wmf
                 *  //case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":  // exif
                 *  //case "{B96B3CB3-0728-11D3-9D7B-0000F81EF32E}":  // photoCD
                 *  //case "{B96B3CB4-0728-11D3-9D7B-0000F81EF32E}":  // flashPIX
                 *
                 *  default:
                 *      Debug.Assert(false, "Unknown pixel format: " + pixelFormat);
                 *      _format = XImageFormat.Gif;
                 *      break;// throw new InvalidOperationException("Unsupported image format.");
                 * }
                 */
            }
#endif
#endif
        }