Exemplo n.º 1
0
        public void SaveAdd(Image image, EncoderParameters encoderParams)
        {
            int st;

            IntPtr nativeEncoderParams = encoderParams.ConvertToMemory();

            st = Gdip.GdipSaveAddImage(nativeImage, image.nativeImage, nativeEncoderParams);
            Marshal.FreeHGlobal(nativeEncoderParams);
            Gdip.CheckStatus(st);
        }
Exemplo n.º 2
0
        public void SaveAdd(EncoderParameters encoderParams)
        {
            int st;

            IntPtr nativeEncoderParams = encoderParams.ConvertToMemory();

            st = SafeNativeMethods.Gdip.GdipSaveAdd(nativeImage, nativeEncoderParams);
            Marshal.FreeHGlobal(nativeEncoderParams);
            SafeNativeMethods.Gdip.CheckStatus(st);
        }
Exemplo n.º 3
0
        public void SaveAdd(EncoderParameters encoderParams)
        {
            Status st;

            IntPtr nativeEncoderParams = encoderParams.ConvertToMemory();

            st = GDIPlus.GdipSaveAdd(nativeObject, nativeEncoderParams);
            Marshal.FreeHGlobal(nativeEncoderParams);
            GDIPlus.CheckStatus(st);
        }
Exemplo n.º 4
0
        public void SaveAdd(Image image, EncoderParameters encoderParams)
        {
            Status st;

            IntPtr nativeEncoderParams = encoderParams.ConvertToMemory();

            st = SafeNativeMethods.Gdip.GdipSaveAddImage(nativeObject, image.NativeObject, nativeEncoderParams);
            Marshal.FreeHGlobal(nativeEncoderParams);
            SafeNativeMethods.Gdip.CheckStatus(st);
        }
Exemplo n.º 5
0
        public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            if (filename == null)
            {
                throw new ArgumentNullException(nameof(filename));
            }
            if (encoder == null)
            {
                throw new ArgumentNullException(nameof(encoder));
            }

            IntPtr encoderParamsMemory = IntPtr.Zero;

            if (encoderParams != null)
            {
                _rawData            = null;
                encoderParamsMemory = encoderParams.ConvertToMemory();
            }
            int status = SafeNativeMethods.Gdip.Ok;

            try
            {
                Guid g     = encoder.Clsid;
                bool saved = false;

                if (_rawData != null)
                {
                    ImageCodecInfo rawEncoder = RawFormat.FindEncoder();
                    if (rawEncoder != null && rawEncoder.Clsid == g)
                    {
                        using (FileStream fs = File.OpenWrite(filename))
                        {
                            fs.Write(_rawData, 0, _rawData.Length);
                            saved = true;
                        }
                    }
                }

                if (!saved)
                {
                    status = SafeNativeMethods.Gdip.GdipSaveImageToFile(new HandleRef(this, nativeImage),
                                                                        filename,
                                                                        ref g,
                                                                        new HandleRef(encoderParams, encoderParamsMemory));
                }
            }
            finally
            {
                if (encoderParamsMemory != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(encoderParamsMemory);
                }
            }
            SafeNativeMethods.Gdip.CheckStatus(status);
        }
Exemplo n.º 6
0
        /// <include file='doc\Image.uex' path='docs/doc[@for="Image.Save4"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Saves this <see cref='System.Drawing.Image'/> to the specified stream in the specified
        ///       format.
        ///    </para>
        /// </devdoc>
        public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }

            IntPtr encoderParamsMemory = IntPtr.Zero;

            if (encoderParams != null)
            {
                rawData             = null;
                encoderParamsMemory = encoderParams.ConvertToMemory();
            }
            int status = SafeNativeMethods.Ok;

            try {
                Guid g     = encoder.Clsid;
                bool saved = false;

                if (rawData != null)
                {
                    ImageCodecInfo rawEncoder = RawFormat.FindEncoder();
                    if (rawEncoder.Clsid == g)
                    {
                        stream.Write(rawData, 0, rawData.Length);
                        saved = true;
                    }
                }

                if (!saved)
                {
                    status = SafeNativeMethods.GdipSaveImageToStream(new HandleRef(this, nativeImage),
                                                                     new UnsafeNativeMethods.ComStreamFromDataStream(stream),
                                                                     ref g,
                                                                     new HandleRef(encoderParams, encoderParamsMemory));
                }
            }
            finally {
                if (encoderParamsMemory != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(encoderParamsMemory);
                }
            }

            if (status != SafeNativeMethods.Ok)
            {
                throw SafeNativeMethods.StatusException(status);
            }
        }
Exemplo n.º 7
0
        public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            if (filename == null)
            {
                throw new ArgumentNullException("filename");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            System.Drawing.IntSecurity.DemandWriteFileIO(filename);
            IntPtr zero = IntPtr.Zero;

            if (encoderParams != null)
            {
                this.rawData = null;
                zero         = encoderParams.ConvertToMemory();
            }
            int status = 0;

            try
            {
                Guid clsid = encoder.Clsid;
                bool flag  = false;
                if (this.rawData != null)
                {
                    ImageCodecInfo info = this.RawFormat.FindEncoder();
                    if ((info != null) && (info.Clsid == clsid))
                    {
                        using (FileStream stream = File.OpenWrite(filename))
                        {
                            stream.Write(this.rawData, 0, this.rawData.Length);
                            flag = true;
                        }
                    }
                }
                if (!flag)
                {
                    status = SafeNativeMethods.Gdip.GdipSaveImageToFile(new HandleRef(this, this.nativeImage), filename, ref clsid, new HandleRef(encoderParams, zero));
                }
            }
            finally
            {
                if (zero != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(zero);
                }
            }
            if (status != 0)
            {
                throw SafeNativeMethods.Gdip.StatusException(status);
            }
        }
Exemplo n.º 8
0
        public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }
            if (encoder == null)
            {
                throw new ArgumentNullException(nameof(encoder));
            }

            IntPtr encoderParamsMemory = IntPtr.Zero;

            if (encoderParams != null)
            {
                _rawData            = null;
                encoderParamsMemory = encoderParams.ConvertToMemory();
            }

            try
            {
                Guid g     = encoder.Clsid;
                bool saved = false;

                if (_rawData != null)
                {
                    ImageCodecInfo rawEncoder = RawFormat.FindEncoder();
                    if (rawEncoder != null && rawEncoder.Clsid == g)
                    {
                        stream.Write(_rawData, 0, _rawData.Length);
                        saved = true;
                    }
                }

                if (!saved)
                {
                    Gdip.CheckStatus(Gdip.GdipSaveImageToStream(
                                         new HandleRef(this, nativeImage),
                                         new GPStream(stream),
                                         ref g,
                                         new HandleRef(encoderParams, encoderParamsMemory)));
                }
            }
            finally
            {
                if (encoderParamsMemory != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(encoderParamsMemory);
                }
            }
        }
Exemplo n.º 9
0
        public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }
            IntPtr zero = IntPtr.Zero;

            if (encoderParams != null)
            {
                this.rawData = null;
                zero         = encoderParams.ConvertToMemory();
            }
            int status = 0;

            try
            {
                Guid clsid = encoder.Clsid;
                bool flag  = false;
                if (this.rawData != null)
                {
                    ImageCodecInfo info = this.RawFormat.FindEncoder();
                    if ((info != null) && (info.Clsid == clsid))
                    {
                        stream.Write(this.rawData, 0, this.rawData.Length);
                        flag = true;
                    }
                }
                if (!flag)
                {
                    status = SafeNativeMethods.Gdip.GdipSaveImageToStream(new HandleRef(this, this.nativeImage), new System.Drawing.UnsafeNativeMethods.ComStreamFromDataStream(stream), ref clsid, new HandleRef(encoderParams, zero));
                }
            }
            finally
            {
                if (zero != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(zero);
                }
            }
            if (status != 0)
            {
                throw SafeNativeMethods.Gdip.StatusException(status);
            }
        }
Exemplo n.º 10
0
        public void Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            int  st;
            Guid guid = encoder.Clsid;

            if (encoderParams == null)
            {
                st = Gdip.GdipSaveImageToFile(nativeImage, filename, ref guid, IntPtr.Zero);
            }
            else
            {
                IntPtr nativeEncoderParams = encoderParams.ConvertToMemory();
                st = Gdip.GdipSaveImageToFile(nativeImage, filename, ref guid, nativeEncoderParams);
                Marshal.FreeHGlobal(nativeEncoderParams);
            }

            Gdip.CheckStatus(st);
        }
Exemplo n.º 11
0
        public void SaveAdd(EncoderParameters encoderParams)
        {
            IntPtr encoder = IntPtr.Zero;

            if (encoderParams != null)
            {
                encoder = encoderParams.ConvertToMemory();
            }

            _rawData = null;
            int status = SafeNativeMethods.Gdip.GdipSaveAdd(new HandleRef(this, nativeImage), new HandleRef(encoderParams, encoder));

            if (encoder != IntPtr.Zero)
            {
                Marshal.FreeHGlobal(encoder);
            }
            SafeNativeMethods.Gdip.CheckStatus(status);
        }
Exemplo n.º 12
0
        public void SaveAdd(EncoderParameters encoderParams)
        {
            IntPtr zero = IntPtr.Zero;

            if (encoderParams != null)
            {
                zero = encoderParams.ConvertToMemory();
            }
            this.rawData = null;
            int status = SafeNativeMethods.Gdip.GdipSaveAdd(new HandleRef(this, this.nativeImage), new HandleRef(encoderParams, zero));

            if (zero != IntPtr.Zero)
            {
                Marshal.FreeHGlobal(zero);
            }
            if (status != 0)
            {
                throw SafeNativeMethods.Gdip.StatusException(status);
            }
        }
Exemplo n.º 13
0
        public void Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
        {
            Status st;
            IntPtr nativeEncoderParams;
            Guid   guid = encoder.Clsid;

            if (encoderParams == null)
            {
                nativeEncoderParams = IntPtr.Zero;
            }
            else
            {
                nativeEncoderParams = encoderParams.ConvertToMemory();
            }

            try
            {
                if (GDIPlus.RunningOnUnix())
                {
                    GdiPlusStreamHelper sh = new GdiPlusStreamHelper(stream, false);
                    st = SafeNativeMethods.Gdip.GdipSaveImageToDelegate_linux(nativeObject, sh.GetBytesDelegate, sh.PutBytesDelegate,
                                                                              sh.SeekDelegate, sh.CloseDelegate, sh.SizeDelegate, ref guid, nativeEncoderParams);
                }
                else
                {
                    st = SafeNativeMethods.Gdip.GdipSaveImageToStream(new HandleRef(this, nativeObject),
                                                                      new ComIStreamWrapper(stream), ref guid, new HandleRef(encoderParams, nativeEncoderParams));
                }
            }
            finally
            {
                if (nativeEncoderParams != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(nativeEncoderParams);
                }
            }

            SafeNativeMethods.Gdip.CheckStatus(st);
        }
Exemplo n.º 14
0
        public void SaveAdd(Image image, EncoderParameters encoderParams)
        {
            IntPtr encoder = IntPtr.Zero;

            if (image == null)
            {
                throw new ArgumentNullException(nameof(image));
            }
            if (encoderParams != null)
            {
                encoder = encoderParams.ConvertToMemory();
            }

            _rawData = null;
            int status = SafeNativeMethods.Gdip.GdipSaveAddImage(new HandleRef(this, nativeImage), new HandleRef(image, image.nativeImage), new HandleRef(encoderParams, encoder));

            if (encoder != IntPtr.Zero)
            {
                Marshal.FreeHGlobal(encoder);
            }
            SafeNativeMethods.Gdip.CheckStatus(status);
        }
Exemplo n.º 15
0
        public void SaveAdd(EncoderParameters encoderParams)
        {
            IntPtr encoder = IntPtr.Zero;

            if (encoderParams != null)
            {
                encoder = encoderParams.ConvertToMemory();
            }

            _rawData = null;

            try
            {
                Gdip.CheckStatus(Gdip.GdipSaveAdd(new HandleRef(this, nativeImage), new HandleRef(encoderParams, encoder)));
            }
            finally
            {
                if (encoder != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(encoder);
                }
            }
        }