public bool SaveImageToDisk(Image image, ImageFormat format, IFilenameProvider fileNameProvider)
        {
            string fileName = fileNameProvider.GetFileName();

            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
            // find the encoder with the image/jpeg mime-type
            ImageCodecInfo imageCodec = null;

            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.MimeType == "image/jpeg")
                {
                    imageCodec = codec;
                }
            }

            // Create a collection of encoder parameters (we only need one in the collection)
            EncoderParameters encoder = new EncoderParameters();

            // We'll save images with 25%, 50%, 75% and 100% quality as compared with the original
            encoder.Param[0] = new EncoderParameter(Encoder.Quality, compressionRatio);

            try {
                image.Save(fileName, imageCodec, encoder);

                addExif(fileName, (uint)image.Width, (uint)image.Height);

                Trace.WriteLine("Thread " + Thread.CurrentThread.ManagedThreadId + " saved " + fileName + " at " + DateTime.Now + ".");

                return(true);
            } catch (Exception ex) {
                Trace.TraceError(ex.ToString());
                return(false);
            }
        }
示例#2
0
        public bool SaveImageToDisk(Image image, ImageFormat format, IFilenameProvider fileNameProvider)
        {
            try {
                string fileName = fileNameProvider.GetFileName();

                image.Save(fileName, format);

                Trace.WriteLine("Thread " + Thread.CurrentThread.ManagedThreadId + " saved " + fileName + " at " + DateTime.Now + ".");

                return(true);
            } catch (Exception ex) {
                Trace.TraceError(ex.ToString());
                return(false);
            }
        }