Пример #1
0
        internal PixelFormat(PixelFormatEnum format)
        {
            _format = format;

            _flags        = GetPixelFormatFlagsFromEnum(format);
            _bitsPerPixel = GetBitsPerPixelFromEnum(format);
            _guidFormat   = new SecurityCriticalDataForSet <Guid> (PixelFormat.GetGuidFromFormat(format));
        }
Пример #2
0
        public static bool GetPixelFormatIndexed(PixelFormatEnum pixelFormatEnum)
        {
            switch (pixelFormatEnum)
            {
            case (PixelFormatEnum.Indexed4):
            case (PixelFormatEnum.Indexed4Reverse):
            case (PixelFormatEnum.Indexed8):
                return(true);

            default:
                return(false);
            }
        }
Пример #3
0
        public static int GetPixelFormatBPP(PixelFormatEnum pixelFormatEnum)
        {
            switch (pixelFormatEnum)
            {
            case (PixelFormatEnum.Indexed4):
            case (PixelFormatEnum.Indexed4Reverse):
                return(4);

            case (PixelFormatEnum.Indexed8):
                return(8);

            case (PixelFormatEnum.Bgra32):
            case (PixelFormatEnum.Rgba32):
            case (PixelFormatEnum.Rgba32PS2):
            case (PixelFormatEnum.Argb32):
                return(32);

            default:
                return(0);
            }
        }
Пример #4
0
        static private PixelFormatFlags GetPixelFormatFlagsFromEnum(PixelFormatEnum pixelFormatEnum)
        {
            switch (pixelFormatEnum)
            {
            case PixelFormatEnum.Default:
                return(PixelFormatFlags.BitsPerPixelUndefined);

            case PixelFormatEnum.Indexed1:
                return(PixelFormatFlags.BitsPerPixel1 | PixelFormatFlags.Palettized);

            case PixelFormatEnum.Indexed2:
                return(PixelFormatFlags.BitsPerPixel2 | PixelFormatFlags.Palettized);

            case PixelFormatEnum.Indexed4:
                return(PixelFormatFlags.BitsPerPixel4 | PixelFormatFlags.Palettized);

            case PixelFormatEnum.Indexed8:
                return(PixelFormatFlags.BitsPerPixel8 | PixelFormatFlags.Palettized);

            case PixelFormatEnum.BlackWhite:
                return(PixelFormatFlags.BitsPerPixel1 | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Gray2:
                return(PixelFormatFlags.BitsPerPixel2 | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Gray4:
                return(PixelFormatFlags.BitsPerPixel4 | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Gray8:
                return(PixelFormatFlags.BitsPerPixel8 | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Bgr555:
                return(PixelFormatFlags.BitsPerPixel16 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderBGR);

            case PixelFormatEnum.Bgr565:
                return(PixelFormatFlags.BitsPerPixel16 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderBGR);

            case PixelFormatEnum.Bgr101010:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderBGR);

            case PixelFormatEnum.Bgr24:
                return(PixelFormatFlags.BitsPerPixel24 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderBGR);

            case PixelFormatEnum.Rgb24:
                return(PixelFormatFlags.BitsPerPixel24 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderRGB);

            case PixelFormatEnum.Bgr32:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderBGR);

            case PixelFormatEnum.Bgra32:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderABGR);

            case PixelFormatEnum.Pbgra32:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsSRGB | PixelFormatFlags.Premultiplied | PixelFormatFlags.ChannelOrderABGR);

            case PixelFormatEnum.Rgb48:
                return(PixelFormatFlags.BitsPerPixel48 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderRGB);

            case PixelFormatEnum.Rgba64:
                return(PixelFormatFlags.BitsPerPixel64 | PixelFormatFlags.IsSRGB | PixelFormatFlags.ChannelOrderARGB);

            case PixelFormatEnum.Prgba64:
                return(PixelFormatFlags.BitsPerPixel64 | PixelFormatFlags.IsSRGB | PixelFormatFlags.Premultiplied | PixelFormatFlags.ChannelOrderARGB);

            case PixelFormatEnum.Gray16:
                return(PixelFormatFlags.BitsPerPixel16 | PixelFormatFlags.IsSRGB | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Gray32Float:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsScRGB | PixelFormatFlags.IsGray);

            case PixelFormatEnum.Rgb128Float:
                return(PixelFormatFlags.BitsPerPixel128 | PixelFormatFlags.IsScRGB | PixelFormatFlags.ChannelOrderRGB);

            case PixelFormatEnum.Rgba128Float:
                return(PixelFormatFlags.BitsPerPixel128 | PixelFormatFlags.IsScRGB | PixelFormatFlags.ChannelOrderARGB);

            case PixelFormatEnum.Prgba128Float:
                return(PixelFormatFlags.BitsPerPixel128 | PixelFormatFlags.IsScRGB | PixelFormatFlags.Premultiplied | PixelFormatFlags.ChannelOrderARGB);

            case PixelFormatEnum.Cmyk32:
                return(PixelFormatFlags.BitsPerPixel32 | PixelFormatFlags.IsCMYK);
            }

            // 3rd party pixel format -- we don't expose anything about it.
            return(PixelFormatFlags.BitsPerPixelUndefined);
        }
Пример #5
0
        /// <summary>
        /// Convert from the internal enum to the actual PixelFormat value.
        /// </summary>
        /// <param name="pixelFormatEnum"></param>
        /// <returns></returns>
        internal static PixelFormat GetPixelFormat(PixelFormatEnum pixelFormatEnum)
        {
            switch (pixelFormatEnum)
            {
            case PixelFormatEnum.Indexed1:
                return(PixelFormats.Indexed1);

            case PixelFormatEnum.Indexed2:
                return(PixelFormats.Indexed2);

            case PixelFormatEnum.Indexed4:
                return(PixelFormats.Indexed4);

            case PixelFormatEnum.Indexed8:
                return(PixelFormats.Indexed8);

            case PixelFormatEnum.BlackWhite:
                return(PixelFormats.BlackWhite);

            case PixelFormatEnum.Gray2:
                return(PixelFormats.Gray2);

            case PixelFormatEnum.Gray4:
                return(PixelFormats.Gray4);

            case PixelFormatEnum.Gray8:
                return(PixelFormats.Gray8);

            case PixelFormatEnum.Bgr555:
                return(PixelFormats.Bgr555);

            case PixelFormatEnum.Bgr565:
                return(PixelFormats.Bgr565);

            case PixelFormatEnum.Bgr101010:
                return(PixelFormats.Bgr101010);

            case PixelFormatEnum.Bgr24:
                return(PixelFormats.Bgr24);

            case PixelFormatEnum.Rgb24:
                return(PixelFormats.Rgb24);

            case PixelFormatEnum.Bgr32:
                return(PixelFormats.Bgr32);

            case PixelFormatEnum.Bgra32:
                return(PixelFormats.Bgra32);

            case PixelFormatEnum.Pbgra32:
                return(PixelFormats.Pbgra32);

            case PixelFormatEnum.Rgb48:
                return(PixelFormats.Rgb48);

            case PixelFormatEnum.Rgba64:
                return(PixelFormats.Rgba64);

            case PixelFormatEnum.Prgba64:
                return(PixelFormats.Prgba64);

            case PixelFormatEnum.Gray16:
                return(PixelFormats.Gray16);

            case PixelFormatEnum.Gray32Float:
                return(PixelFormats.Gray32Float);

            case PixelFormatEnum.Rgb128Float:
                return(PixelFormats.Rgb128Float);

            case PixelFormatEnum.Rgba128Float:
                return(PixelFormats.Rgba128Float);

            case PixelFormatEnum.Prgba128Float:
                return(PixelFormats.Prgba128Float);

            case PixelFormatEnum.Cmyk32:
                return(PixelFormats.Cmyk32);
            }

            return(PixelFormats.Default);
        }
Пример #6
0
        static private Guid GetGuidFromFormat(PixelFormatEnum format)
        {
            switch (format)
            {
            case PixelFormatEnum.Default:
                return(WICPixelFormatGUIDs.WICPixelFormatDontCare);

            case PixelFormatEnum.Indexed1:
                return(WICPixelFormatGUIDs.WICPixelFormat1bppIndexed);

            case PixelFormatEnum.Indexed2:
                return(WICPixelFormatGUIDs.WICPixelFormat2bppIndexed);

            case PixelFormatEnum.Indexed4:
                return(WICPixelFormatGUIDs.WICPixelFormat4bppIndexed);

            case PixelFormatEnum.Indexed8:
                return(WICPixelFormatGUIDs.WICPixelFormat8bppIndexed);

            case PixelFormatEnum.BlackWhite:
                return(WICPixelFormatGUIDs.WICPixelFormatBlackWhite);

            case PixelFormatEnum.Gray2:
                return(WICPixelFormatGUIDs.WICPixelFormat2bppGray);

            case PixelFormatEnum.Gray4:
                return(WICPixelFormatGUIDs.WICPixelFormat4bppGray);

            case PixelFormatEnum.Gray8:
                return(WICPixelFormatGUIDs.WICPixelFormat8bppGray);

            case PixelFormatEnum.Bgr555:
                return(WICPixelFormatGUIDs.WICPixelFormat16bppBGR555);

            case PixelFormatEnum.Bgr565:
                return(WICPixelFormatGUIDs.WICPixelFormat16bppBGR565);

            case PixelFormatEnum.Bgr24:
                return(WICPixelFormatGUIDs.WICPixelFormat24bppBGR);

            case PixelFormatEnum.Rgb24:
                return(WICPixelFormatGUIDs.WICPixelFormat24bppRGB);

            case PixelFormatEnum.Bgr101010:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppBGR101010);

            case PixelFormatEnum.Bgr32:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppBGR);

            case PixelFormatEnum.Bgra32:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppBGRA);

            case PixelFormatEnum.Pbgra32:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppPBGRA);

            case PixelFormatEnum.Rgb48:
                return(WICPixelFormatGUIDs.WICPixelFormat48bppRGB);

            case PixelFormatEnum.Rgba64:
                return(WICPixelFormatGUIDs.WICPixelFormat64bppRGBA);

            case PixelFormatEnum.Prgba64:
                return(WICPixelFormatGUIDs.WICPixelFormat64bppPRGBA);

            case PixelFormatEnum.Gray16:
                return(WICPixelFormatGUIDs.WICPixelFormat16bppGray);

            case PixelFormatEnum.Gray32Float:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppGrayFloat);

            case PixelFormatEnum.Rgb128Float:
                return(WICPixelFormatGUIDs.WICPixelFormat128bppRGBFloat);

            case PixelFormatEnum.Rgba128Float:
                return(WICPixelFormatGUIDs.WICPixelFormat128bppRGBAFloat);

            case PixelFormatEnum.Prgba128Float:
                return(WICPixelFormatGUIDs.WICPixelFormat128bppPRGBAFloat);

            case PixelFormatEnum.Cmyk32:
                return(WICPixelFormatGUIDs.WICPixelFormat32bppCMYK);
            }

            throw new System.ArgumentException(SR.Get(SRID.Image_BadPixelFormat, format), "format");
        }
Пример #7
0
        /// <summary>
        /// Construct a pixel format from a string that represents the format.
        /// The purpose of this method is only for deserialization of PixelFormat.
        /// The preferred way to construct a PixelFormat is with the PixelFormats class.
        /// </summary>
        /// <param name="pixelFormatString"></param>
        internal PixelFormat(string pixelFormatString)
        {
            PixelFormatEnum format = PixelFormatEnum.Default;

            if (pixelFormatString == null)
            {
                throw new System.ArgumentNullException("pixelFormatString");
            }

            string upperPixelFormatString = pixelFormatString.ToUpper(System.Globalization.CultureInfo.InvariantCulture);

            switch (upperPixelFormatString)
            {
            case "DEFAULT":
                format = PixelFormatEnum.Default;
                break;

            case "EXTENDED":
                format = PixelFormatEnum.Extended;
                break;

            case "INDEXED1":
                format = PixelFormatEnum.Indexed1;
                break;

            case "INDEXED2":
                format = PixelFormatEnum.Indexed2;
                break;

            case "INDEXED4":
                format = PixelFormatEnum.Indexed4;
                break;

            case "INDEXED8":
                format = PixelFormatEnum.Indexed8;
                break;

            case "BLACKWHITE":
                format = PixelFormatEnum.BlackWhite;
                break;

            case "GRAY2":
                format = PixelFormatEnum.Gray2;
                break;

            case "GRAY4":
                format = PixelFormatEnum.Gray4;
                break;

            case "GRAY8":
                format = PixelFormatEnum.Gray8;
                break;

            case "BGR555":
                format = PixelFormatEnum.Bgr555;
                break;

            case "BGR565":
                format = PixelFormatEnum.Bgr565;
                break;

            case "BGR24":
                format = PixelFormatEnum.Bgr24;
                break;

            case "RGB24":
                format = PixelFormatEnum.Rgb24;
                break;

            case "BGR101010":
                format = PixelFormatEnum.Bgr101010;
                break;

            case "BGR32":
                format = PixelFormatEnum.Bgr32;
                break;

            case "BGRA32":
                format = PixelFormatEnum.Bgra32;
                break;

            case "PBGRA32":
                format = PixelFormatEnum.Pbgra32;
                break;

            case "RGB48":
                format = PixelFormatEnum.Rgb48;
                break;

            case "RGBA64":
                format = PixelFormatEnum.Rgba64;
                break;

            case "PRGBA64":
                format = PixelFormatEnum.Prgba64;
                break;

            case "GRAY16":
                format = PixelFormatEnum.Gray16;
                break;

            case "GRAY32FLOAT":
                format = PixelFormatEnum.Gray32Float;
                break;

            case "RGB128FLOAT":
                format = PixelFormatEnum.Rgb128Float;
                break;

            case "RGBA128FLOAT":
                format = PixelFormatEnum.Rgba128Float;
                break;

            case "PRGBA128FLOAT":
                format = PixelFormatEnum.Prgba128Float;
                break;

            case "CMYK32":
                format = PixelFormatEnum.Cmyk32;
                break;

            default:
                throw new System.ArgumentException(SR.Get(SRID.Image_BadPixelFormat, pixelFormatString),
                                                   "pixelFormatString");
            }

            _format = format;

            _flags        = GetPixelFormatFlagsFromEnum(format);
            _bitsPerPixel = GetBitsPerPixelFromEnum(format);
            _guidFormat   = new SecurityCriticalDataForSet <Guid> (PixelFormat.GetGuidFromFormat(format));
        }
Пример #8
0
        static private UInt32 GetBitsPerPixelFromEnum(PixelFormatEnum pixelFormatEnum)
        {
            switch (pixelFormatEnum)
            {
            case PixelFormatEnum.Default:
                return(0);

            case PixelFormatEnum.Indexed1:
                return(1);

            case PixelFormatEnum.Indexed2:
                return(2);

            case PixelFormatEnum.Indexed4:
                return(4);

            case PixelFormatEnum.Indexed8:
                return(8);

            case PixelFormatEnum.BlackWhite:
                return(1);

            case PixelFormatEnum.Gray2:
                return(2);

            case PixelFormatEnum.Gray4:
                return(4);

            case PixelFormatEnum.Gray8:
                return(8);

            case PixelFormatEnum.Bgr555:
            case PixelFormatEnum.Bgr565:
                return(16);

            case PixelFormatEnum.Bgr101010:
                return(32);

            case PixelFormatEnum.Bgr24:
            case PixelFormatEnum.Rgb24:
                return(24);

            case PixelFormatEnum.Bgr32:
            case PixelFormatEnum.Bgra32:
            case PixelFormatEnum.Pbgra32:
                return(32);

            case PixelFormatEnum.Rgb48:
                return(48);

            case PixelFormatEnum.Rgba64:
            case PixelFormatEnum.Prgba64:
                return(64);

            case PixelFormatEnum.Gray16:
                return(16);

            case PixelFormatEnum.Gray32Float:
                return(32);

            case PixelFormatEnum.Rgb128Float:
            case PixelFormatEnum.Rgba128Float:
            case PixelFormatEnum.Prgba128Float:
                return(128);

            case PixelFormatEnum.Cmyk32:
                return(32);
            }

            // 3rd party pixel format -- we don't expose anything about it.
            return(0);
        }
 internal static extern int /* HRESULT */ CreateBitmapRenderTarget(
     IntPtr THIS_PTR,
     UInt32 width,
     UInt32 height, 
     PixelFormatEnum pixelFormatEnum,
     float dpiX, 
     float dpiY, 
     MILRTInitializationFlags dwFlags,
     out SafeMILHandle /* IMILRenderTargetBitmap */ ppIRenderTargetBitmap); 
        private static PixelFormat ReadPixelFormat(BinaryReader reader)
        {
            PixelFormatEnum format = (PixelFormatEnum)reader.ReadByte();

            switch (format)
            {
            case PixelFormatEnum.Bgr101010:
                return(PixelFormats.Bgr101010);

            case PixelFormatEnum.Bgr24:
                return(PixelFormats.Bgr24);

            case PixelFormatEnum.Bgr32:
                return(PixelFormats.Bgr32);

            case PixelFormatEnum.Bgr555:
                return(PixelFormats.Bgr555);

            case PixelFormatEnum.Bgr565:
                return(PixelFormats.Bgr565);

            case PixelFormatEnum.Bgra32:
                return(PixelFormats.Bgra32);

            case PixelFormatEnum.BlackWhite:
                return(PixelFormats.BlackWhite);

            case PixelFormatEnum.Cmyk32:
                return(PixelFormats.Cmyk32);

            case PixelFormatEnum.Default:
                return(PixelFormats.Default);

            case PixelFormatEnum.Gray16:
                return(PixelFormats.Gray16);

            case PixelFormatEnum.Gray2:
                return(PixelFormats.Gray2);

            case PixelFormatEnum.Gray32Float:
                return(PixelFormats.Gray32Float);

            case PixelFormatEnum.Gray4:
                return(PixelFormats.Gray4);

            case PixelFormatEnum.Gray8:
                return(PixelFormats.Gray8);

            case PixelFormatEnum.Indexed1:
                return(PixelFormats.Indexed1);

            case PixelFormatEnum.Indexed2:
                return(PixelFormats.Indexed2);

            case PixelFormatEnum.Indexed4:
                return(PixelFormats.Indexed4);

            case PixelFormatEnum.Indexed8:
                return(PixelFormats.Indexed8);

            case PixelFormatEnum.Pbgra32:
                return(PixelFormats.Pbgra32);

            case PixelFormatEnum.Prgba128Float:
                return(PixelFormats.Prgba128Float);

            case PixelFormatEnum.Prgba64:
                return(PixelFormats.Prgba64);

            case PixelFormatEnum.Rgb128Float:
                return(PixelFormats.Rgb128Float);

            case PixelFormatEnum.Rgb24:
                return(PixelFormats.Rgb24);

            case PixelFormatEnum.Rgb48:
                return(PixelFormats.Rgb48);

            case PixelFormatEnum.Rgba128Float:
                return(PixelFormats.Rgba128Float);

            case PixelFormatEnum.Rgba64:
                return(PixelFormats.Rgba64);

            default:
                throw new SerializerException(string.Format("Unsupported PixelFormat: {0}",
                                                            format.ToString()));
            }
        }
Пример #11
0
 public static void TexImage2D(TextureTarget target, int level, InternalPixelFormat internalFormat, int width, int height, int border, PixelFormatEnum format, PixelType type, IntPtr pixelPtr)
 {
     Delegates.TexImage2D(target, level, internalFormat, width, height, border, format, type, pixelPtr);
 }
Пример #12
0
 internal PixelFormat(PixelFormatEnum pixelFormatEnum)
 {
     BitsPerPixel = PixelFormatHelper.GetPixelFormatBPP(pixelFormatEnum);
     IsIndexed    = PixelFormatHelper.GetPixelFormatIndexed(pixelFormatEnum);
     Format       = pixelFormatEnum;
 }