public void KucukBoyut(System.Drawing.Image yuklenenFoto, int resimBoyutu, string resimIsmi)
        {
            System.Drawing.Bitmap   islenmisFoto  = null;
            System.Drawing.Graphics grafikNesnesi = null;
            int hedeflenenGenislik = resimBoyutu;
            int hedeflenenYukseklik = resimBoyutu;
            int yeni_gen, yeni_yuk;

            yeni_yuk            = (int)Math.Round(((float)yuklenenFoto.Height * (float)resimBoyutu) / (float)yuklenenFoto.Width);
            yeni_gen            = hedeflenenGenislik;
            hedeflenenYukseklik = yeni_yuk;
            yeni_gen            = yeni_gen > hedeflenenGenislik ? hedeflenenGenislik : yeni_gen;
            yeni_yuk            = yeni_yuk > hedeflenenYukseklik ? hedeflenenYukseklik : yeni_yuk;
            islenmisFoto        = new System.Drawing.Bitmap(hedeflenenGenislik, hedeflenenYukseklik);
            grafikNesnesi       = System.Drawing.Graphics.FromImage(islenmisFoto);
            grafikNesnesi.FillRectangle(new System.Drawing.SolidBrush(System.Drawing.Color.White), new System.Drawing.Rectangle(0, 0, hedeflenenGenislik, hedeflenenYukseklik));
            int x = (hedeflenenGenislik - yeni_gen) / 2;
            int y = (hedeflenenYukseklik - yeni_yuk) / 2;

            grafikNesnesi.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            grafikNesnesi.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            grafikNesnesi.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.Default;
            System.Drawing.Imaging.ImageCodecInfo    codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];
            System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
            eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 95L);
            grafikNesnesi.DrawImage(yuklenenFoto, x, y, yeni_gen, yeni_yuk);

            islenmisFoto.Save(Server.MapPath("/Content/" + resimIsmi), codec, eParams);
        }
Ejemplo n.º 2
0
        public static byte[] ResizeImageToByte(string fileName, int width, int height)
        {
            using (Bitmap bmp = (Bitmap) new Bitmap(fileName).Clone())
            {
                Size newSize = new Size(width, height);

                using (Bitmap newBmp = new Bitmap((System.Drawing.Image)bmp, newSize))
                {
                    using (Graphics g = Graphics.FromImage(newBmp)) // Create Graphics object from original Image
                    {
                        g.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                        g.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.High;
                        g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

                        //Set Image codec of JPEG type, the index of JPEG codec is "1"
                        System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];

                        //Set the parameters for defining the quality of the thumbnail... here it is set to 100%
                        System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
                        eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 75L);

                        //Now draw the image on the instance of thumbnail Bitmap object
                        g.DrawImage(bmp, new Rectangle(0, 0, newBmp.Width, newBmp.Height));

                        //newBmp.Save(newFileName, codec, eParams);
                        //newBmp.Save(newFileName, Image.FromFile(fileName).RawFormat);
                        MemoryStream ms = new MemoryStream();
                        newBmp.Save(ms, bmp.RawFormat);
                        return(ms.GetBuffer());
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ThumbnailCreator"/> class.
        /// </summary>
        /// <param name="tnSettings">The <see cref="ThumbnailSettings"/> to use.</param>
        /// <param name="worker">The <see cref="System.ComponentModel.BackgroundWorker"/>worker to use.
        /// </param>
        public ThumbnailCreator(ThumbnailSettings tnSettings, System.ComponentModel.BackgroundWorker worker)
        {
            this._tnSettings = tnSettings;
            this._worker = worker;

            #if false
            _imageCodec = GetEncoder (System.Drawing.Imaging.ImageFormat.Png);
            _qualityParameter = new System.Drawing.Imaging.EncoderParameter (
                    System.Drawing.Imaging.Encoder.Quality, 75L);
            _qualityParameters = new System.Drawing.Imaging.EncoderParameters (1);
            _qualityParameters.Param[0] = _qualityParameter;
            #else
            _imageCodec = GetEncoder (System.Drawing.Imaging.ImageFormat.Jpeg);
            _qualityParameter = new System.Drawing.Imaging.EncoderParameter (
                    System.Drawing.Imaging.Encoder.Quality, 75L);
            _qualityParameters = new System.Drawing.Imaging.EncoderParameters (1);
            _qualityParameters.Param[0] = _qualityParameter;
            #endif

            #if false
            using (System.Drawing.Bitmap bitmap1 = new System.Drawing.Bitmap (1, 1))
                {
                System.Drawing.Imaging.EncoderParameters paramList =
                        bitmap1.GetEncoderParameterList (_imageCodec.Clsid);
                System.Drawing.Imaging.EncoderParameter[] encParams = paramList.Param;
                foreach (System.Drawing.Imaging.EncoderParameter p in encParams)
                    {
                    THelper.Information ("Type {0}, GUID {1}", p.ValueType, p.Encoder.Guid);
                    }

                paramList.Dispose ();
                }
            #endif
        }
Ejemplo n.º 4
0
        public void SaveImage(string fileName, long size, int no)
        {
            //画像ファイルを読み込む
            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(fileName);

            //イメージエンコーダに関する情報を取得する
            System.Drawing.Imaging.ImageCodecInfo ici = GetEncoderInfo("image/jpeg");

            try
            {
                //EncoderParameterオブジェクトを1つ格納できる
                //EncoderParametersクラスの新しいインスタンスを初期化
                //ここでは品質のみ指定するため1つだけ用意する
                System.Drawing.Imaging.EncoderParameters eps = getOptiumQuarity(size, bmp, ici);

                //ファイル名を取得
                string saveName = getSaveFileName(fileName, size, no);

                //保存する
                bmp.Save(saveName, ici, eps);

                bmp.Dispose();
                eps.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Ejemplo n.º 5
0
        public static void Thumbize(string pPage, string pThumb, Document document, Page page)
        {
            System.IO.MemoryStream cryptoStream = new System.IO.MemoryStream(Utility.Security.AES.DecryptStream(page.Token, System.IO.File.ReadAllBytes(System.IO.Path.Combine(pPage, page.Filename))).ToArray());
            using (var srcImage = System.Drawing.Image.FromStream(cryptoStream))
            {
                var newWidth  = 300;
                var newHeight = 200;

                using (var newImage = new Bitmap(newWidth, newHeight))
                    using (var graphics = Graphics.FromImage(newImage))
                    {
                        graphics.SmoothingMode     = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        graphics.PixelOffsetMode   = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
                        graphics.DrawImage(srcImage, new System.Drawing.Rectangle(0, 0, newWidth, newHeight));

                        System.IO.MemoryStream ms = new System.IO.MemoryStream();
                        System.Drawing.Imaging.EncoderParameters parms = new System.Drawing.Imaging.EncoderParameters(1);
                        parms.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 0);
                        System.Drawing.Imaging.ImageCodecInfo jpegEncoder = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().FirstOrDefault(e => e.FormatDescription == "JPEG");
                        newImage.Save(ms, jpegEncoder, parms);
                        System.IO.File.WriteAllBytes(System.IO.Path.Combine(pThumb, string.Format("{0}.jpg", document.Id.ToString())), SoftFluent.Samples.GED.Utility.Security.AES.EncryptStream(document.Token, ms.ToArray()).ToArray());
                        ms.Close();
                    }
            }
        }
Ejemplo n.º 6
0
 public void SaveBmpWithImageCodecInfo(System.Drawing.Image img, string photoPath)
 {
     System.Drawing.Imaging.ImageCodecInfo    encoderInfo       = PictureWaterMark.GetEncoderInfo("image/jpeg");
     System.Drawing.Imaging.Encoder           quality           = System.Drawing.Imaging.Encoder.Quality;
     System.Drawing.Imaging.EncoderParameters encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
     System.Drawing.Imaging.EncoderParameter  encoderParameter  = new System.Drawing.Imaging.EncoderParameter(quality, 100L);
     encoderParameters.Param[0] = encoderParameter;
     if (img == null)
     {
         return;
     }
     System.Drawing.Bitmap bitmap = null;
     try
     {
         bitmap = new System.Drawing.Bitmap(img);
         bitmap.Save(photoPath, encoderInfo, encoderParameters);
     }
     catch (Exception ex)
     {
         Log.WriteLog("SaveBmpWithImageCodecInfo出错", ex);
     }
     finally
     {
         bitmap.Dispose();
     }
 }
Ejemplo n.º 7
0
        public static string GetJPEGBase64StringFromBitmapImage(BitmapImage bmpImage, long jpegEncoderQuality, System.Drawing.RotateFlipType rotateFlip)
        {
            System.Drawing.Bitmap bmp = null;
            MemoryStream          ms  = new MemoryStream();

            try
            {
                System.Drawing.Imaging.EncoderParameters encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
                System.Drawing.Imaging.Encoder           myEncoder         = System.Drawing.Imaging.Encoder.Quality;
                encoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(myEncoder, jpegEncoderQuality);
                System.Drawing.Imaging.ImageCodecInfo jgpEncoder = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);

                bmp = UIHelper.BitmapImage2Bitmap(bmpImage);
                bmp.RotateFlip(rotateFlip);
                bmp.Save(ms, jgpEncoder, encoderParameters);

                return(Convert.ToBase64String(ms.ToArray()));
            }
            finally
            {
                DeleteObject(bmp.GetHbitmap());
                bmp.Dispose();
                bmp = null;
            }
        }
Ejemplo n.º 8
0
        protected static void ImageResize(System.Drawing.Image orjinalFoto, int boyut, string dosyaAdi, string filePath)
        {
            System.Drawing.Bitmap   islenmisFotograf = null;
            System.Drawing.Graphics grafik           = null;

            int hedefGenislik = boyut;
            int hedefYukseklik = boyut;
            int new_width, new_height;

            new_height     = (int)Math.Round(((float)orjinalFoto.Height * (float)boyut) / (float)orjinalFoto.Width);
            new_width      = hedefGenislik;
            hedefYukseklik = new_height;
            new_width      = new_width > hedefGenislik ? hedefGenislik : new_width;
            new_height     = new_height > hedefYukseklik ? hedefYukseklik : new_height;

            islenmisFotograf = new System.Drawing.Bitmap(hedefGenislik, hedefYukseklik);
            grafik           = System.Drawing.Graphics.FromImage(islenmisFotograf);
            grafik.FillRectangle(new System.Drawing.SolidBrush(System.Drawing.Color.White), new System.Drawing.Rectangle(0, 0, hedefGenislik, hedefYukseklik));
            int paste_x = (hedefGenislik - new_width) / 2;
            int paste_y = (hedefYukseklik - new_height) / 2;

            grafik.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            grafik.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            grafik.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.Default;

            System.Drawing.Imaging.ImageCodecInfo    codec   = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];
            System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
            eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 95L);

            grafik.DrawImage(orjinalFoto, paste_x, paste_y, new_width, new_height);
            islenmisFotograf.Save(HttpContext.Current.Server.MapPath(filePath + dosyaAdi), codec, eParams);
        }
Ejemplo n.º 9
0
        private void buttonSavePicture_Click(object sender, EventArgs e)
        {
            if (pictureBoxHierarchy.Image != null)
            {
                SaveFileDialog savedialog = new SaveFileDialog();
                savedialog.Title           = "Сохранить картинку как...";
                savedialog.OverwritePrompt = true;
                savedialog.CheckPathExists = true;
                savedialog.Filter          = "Image Files(*.JPG)|*.JPG";
                savedialog.ShowHelp        = true;

                System.Drawing.Imaging.ImageCodecInfo jpgEncoder = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);

                System.Drawing.Imaging.Encoder           myEncoder           = System.Drawing.Imaging.Encoder.Quality;
                System.Drawing.Imaging.EncoderParameters myEncoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
                System.Drawing.Imaging.EncoderParameter  myEncoderParameter  = new System.Drawing.Imaging.EncoderParameter(myEncoder, 100L);
                myEncoderParameters.Param[0] = myEncoderParameter;

                if (savedialog.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        pictureBoxHierarchy.Image.Save(savedialog.FileName, jpgEncoder, myEncoderParameters);
                    }
                    catch
                    {
                        MessageBox.Show("Невозможно сохранить изображение", "Ошибка",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
Ejemplo n.º 10
0
        public virtual void  saveJPEG(System.String filename)
        {
            try
            {
                // Set the quality to 100 (must be a long)
                System.Drawing.Imaging.Encoder          qualityEncoder = System.Drawing.Imaging.Encoder.Quality;
                System.Drawing.Imaging.EncoderParameter ratio          = new System.Drawing.Imaging.EncoderParameter(qualityEncoder, 100L);
                // Add the quality parameter to the list
                System.Drawing.Imaging.EncoderParameters codecParams = new System.Drawing.Imaging.EncoderParameters(1);
                codecParams.Param[0] = ratio;

                // Get Codec Info using MIME type
                System.Drawing.Imaging.ImageCodecInfo JpegCodecInfo = GetEncoderInfo("image/jpeg");

                //
                System.Console.Out.WriteLine("Saving '" + filename + "'.");

                offImg.Save(filename, JpegCodecInfo, codecParams);

                System.Console.Out.WriteLine("JPEG image saved.");
            }
            catch (System.Exception e)
            {
                System.Console.Out.WriteLine(e);
            }
        }
Ejemplo n.º 11
0
        private void FeedImageContent(HttpListenerContext context)
        {
            context.Response.ContentType = "image/png";

            // Find the appropriate codec for saving the episode image as a png
            System.Drawing.Imaging.ImageCodecInfo pngCodec = null;

            foreach (System.Drawing.Imaging.ImageCodecInfo codec in System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders())
            {
                if (codec.MimeType == context.Response.ContentType)
                {
                    pngCodec = codec;
                    break;
                }
            }

            try
            {
                Properties.Resources.icon_main_img256.Save(context.Response.OutputStream, pngCodec, null);
            }
            catch (HttpListenerException)
            {
                // Don't worry about dropped connections etc.
            }
        }
Ejemplo n.º 12
0
        public static byte[] ReduceWeightImage(System.Drawing.Image image, long minByteWeight, long maxByteWeight)
        {
            byte[] source = GetBytes(image);
            if (source.Length < maxByteWeight)
            {
                return(source);
            }

            if (minByteWeight > 0 && maxByteWeight > 0)
            {
                if (minByteWeight > maxByteWeight)
                {
                    (minByteWeight, maxByteWeight) = (maxByteWeight, minByteWeight);
                }
                if (maxByteWeight - minByteWeight < 50)
                {
                    maxByteWeight = minByteWeight + 50;
                }
                System.Drawing.Imaging.ImageCodecInfo[] codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders();
                string mimeType = GetMimeType(image);
                System.Drawing.Imaging.ImageCodecInfo imageCodecInfo = codecs[1];

                System.Drawing.Imaging.Encoder           encoder           = System.Drawing.Imaging.Encoder.Quality;
                System.Drawing.Imaging.EncoderParameters encoderParameters =
                    new System.Drawing.Imaging.EncoderParameters(1);

                return(ReduceWeightImageProcess(source, source, minByteWeight, maxByteWeight, imageCodecInfo,
                                                encoder, encoderParameters, source.LongLength * 85L / 1166927L));
            }
            return(source);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// JPGファイルに変換
        /// </summary>
        /// <param name="pngPath">元のPNGファイルフルパス</param>
        /// <param name="quality">品質(0-100)</param>
        /// <returns></returns>
        static string ConvertToJpeg(string pngPath, int quality)
        {
            string jpgPath = null;

            using (Bitmap bmp = new Bitmap(pngPath))
            {
                try
                {
                    string ext = System.IO.Path.GetExtension(pngPath);
                    jpgPath = pngPath.Replace(ext, "") + ".jpg";

                    System.Drawing.Imaging.EncoderParameters eps = new System.Drawing.Imaging.EncoderParameters(1);
                    System.Drawing.Imaging.EncoderParameter  ep  = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality);
                    eps.Param[0] = ep;

                    System.Drawing.Imaging.ImageCodecInfo ici = GetEncoderInfo("image/jpeg");

                    bmp.Save(jpgPath, ici, eps);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                bmp.Dispose();
            }

            return(jpgPath);
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            foreach (string file in args)
            {
                try
                {
                    System.Console.Write("Reading file: {0} ... ", file);
                    using (System.Drawing.Image image = System.Drawing.Image.FromFile(file))
                    {
                        System.Console.WriteLine("Done");

                        System.IO.FileInfo info   = new System.IO.FileInfo(file);
                        string             output = file.Replace(info.Extension, ".jpg");

                        System.Console.Write("Writing file: {0} ... ", output);

                        // Create parameters to specify quality.
                        System.Drawing.Imaging.ImageCodecInfo    codec      = Program.getCodecInfo("image/jpeg");
                        System.Drawing.Imaging.Encoder           encoder    = System.Drawing.Imaging.Encoder.Quality;
                        System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters(1);
                        parameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(encoder, 100L);

                        // Write the file.
                        image.Save(output, codec, parameters);
                        System.Console.WriteLine("Done");
                    }
                }
                catch (System.Exception e)
                {
                    System.Console.WriteLine("Error processing file '", file, ", ", e.Message);
                }
            }
        }
Ejemplo n.º 15
0
        private void EpisodeImageContent(HttpListenerContext context)
        {
            Regex epidPattern = new Regex(@"^\?epid=([0-9]+)$");
            Match match       = epidPattern.Match(context.Request.Url.Query);

            int epid;

            if (!int.TryParse(match.Groups[1].Value, out epid))
            {
                // Request doesn't contain a valid episode id
                this.ErrorPage404(context);
                return;
            }

            Model.Episode episode;

            try
            {
                episode = new Model.Episode(epid);
            }
            catch (DataNotFoundException)
            {
                // Episode ID does not exist
                this.ErrorPage404(context);
                return;
            }

            CompressedImage image = episode.Image;

            if (image == null)
            {
                // Specified episode does not have an image
                this.ErrorPage404(context);
                return;
            }

            context.Response.ContentType = "image/png";

            // Find the appropriate codec for saving the image as a png
            System.Drawing.Imaging.ImageCodecInfo pngCodec = null;

            foreach (System.Drawing.Imaging.ImageCodecInfo codec in System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders())
            {
                if (codec.MimeType == context.Response.ContentType)
                {
                    pngCodec = codec;
                    break;
                }
            }

            try
            {
                image.Image.Save(context.Response.OutputStream, pngCodec, null);
            }
            catch (HttpListenerException)
            {
                // Don't worry about dropped connections etc.
            }
        }
Ejemplo n.º 16
0
        public static void ExtractImagesFromPDF(string password, string key, string docPath, string pagePath, PageCollection pages)
        {
            Page page = null;
            // NOTE:  This will only get the first image it finds per page.
            PdfReader pdf = new PdfReader(Utility.Security.AES.DecryptFile(key, docPath));

            //RandomAccessFileOrArray raf = new iTextSharp.text.pdf.RandomAccessFileOrArray(p);

            try
            {
                for (int pageNumber = 1; pageNumber <= pdf.NumberOfPages; pageNumber++)
                {
                    PdfDictionary pg = pdf.GetPageN(pageNumber);

                    // recursively search pages, forms and groups for images.
                    PdfObject obj = FindImageInPDFDictionary(pg);
                    if (obj != null)
                    {
                        int       XrefIndex = Convert.ToInt32(((PRIndirectReference)obj).Number.ToString(System.Globalization.CultureInfo.InvariantCulture));
                        PdfObject pdfObj    = pdf.GetPdfObject(XrefIndex);
                        PdfStream pdfStrem  = (PdfStream)pdfObj;
                        byte[]    bytes     = PdfReader.GetStreamBytesRaw((PRStream)pdfStrem);
                        if ((bytes != null))
                        {
                            using (System.IO.MemoryStream memStream = new System.IO.MemoryStream(bytes))
                            {
                                memStream.Position = 0;
                                System.Drawing.Image img = System.Drawing.Image.FromStream(memStream);
                                // must save the file while stream is open.

                                page       = new Page();
                                page.Order = pages.Count;
                                page.Save();
                                page.Token = Utility.Security.AES.GetToken(page.Id, password);
                                //string path = System.IO.Path.Combine(page.Filename, String.Format(@"{0}.jpg", pageNumber));
                                System.Drawing.Imaging.EncoderParameters parms = new System.Drawing.Imaging.EncoderParameters(1);
                                parms.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 0);
                                System.Drawing.Imaging.ImageCodecInfo jpegEncoder = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().FirstOrDefault(e => e.FormatDescription == "JPEG");
                                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                                img.Save(ms, jpegEncoder, parms);
                                System.IO.File.WriteAllBytes(System.IO.Path.Combine(pagePath, page.Filename), SoftFluent.Samples.GED.Utility.Security.AES.EncryptStream(page.Token, ms.ToArray()).ToArray());
                                ms.Close();
                                pages.Add(page);
                            }
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
            finally
            {
                pdf.Close();
                //raf.Close();
            }
        }
Ejemplo n.º 17
0
        private void ChapterImageContent(HttpListenerContext context)
        {
            Regex paramsPattern = new Regex(@"^\?epid=([0-9]+)&start=([0-9]+)$");
            Match match         = paramsPattern.Match(context.Request.Url.Query);

            int epid, start;

            if (!int.TryParse(match.Groups[1].Value, out epid))
            {
                // Request doesn't contain a valid episode id
                this.ErrorPage404(context);
                return;
            }

            if (!int.TryParse(match.Groups[2].Value, out start))
            {
                // Request doesn't contain a valid start time
                this.ErrorPage404(context);
                return;
            }

            var download = new Model.Download(epid);
            var chapter  = new Model.Chapter(download, start);

            CompressedImage image = chapter.Image;

            if (image == null)
            {
                // Specified chapter does not have an image
                this.ErrorPage404(context);
                return;
            }

            context.Response.ContentType = "image/png";

            // Find the appropriate codec for saving the image as a png
            System.Drawing.Imaging.ImageCodecInfo pngCodec = null;

            foreach (System.Drawing.Imaging.ImageCodecInfo codec in System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders())
            {
                if (codec.MimeType == context.Response.ContentType)
                {
                    pngCodec = codec;
                    break;
                }
            }

            try
            {
                image.Image.Save(context.Response.OutputStream, pngCodec, null);
            }
            catch (HttpListenerException)
            {
                // Don't worry about dropped connections etc.
            }
        }
Ejemplo n.º 18
0
        public static void SaveImage(System.Drawing.Image Image, string Destination)
        {
            System.Drawing.Imaging.ImageCodecInfo    jgpEncoder          = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
            System.Drawing.Imaging.Encoder           myEncoder           = System.Drawing.Imaging.Encoder.Quality;
            System.Drawing.Imaging.EncoderParameters myEncoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
            System.Drawing.Imaging.EncoderParameter  myEncoderParameter  = new System.Drawing.Imaging.EncoderParameter(myEncoder, (long)Settings.ImageQuality);
            myEncoderParameters.Param[0] = myEncoderParameter;

            Image.Save(Destination, jgpEncoder, myEncoderParameters);
        }
Ejemplo n.º 19
0
 private static System.Drawing.Image SaveImages(
     System.Drawing.Imaging.ImageCodecInfo tiffCodec
     , System.IO.MemoryStream outputStream
     , System.Drawing.Image tiffImage, System.Drawing.Image firstImage)
 {
     using (System.Drawing.Imaging.EncoderParameters encParameters =
                new System.Drawing.Imaging.EncoderParameters(3))
     {
         if (firstImage == null)
         {
             encParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(
                 System.Drawing.Imaging.Encoder.SaveFlag
                 , (long)System.Drawing.Imaging.EncoderValue.MultiFrame     // 18L
                 );
         }
         else
         {
             encParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(
                 System.Drawing.Imaging.Encoder.SaveFlag
                 , (long)System.Drawing.Imaging.EncoderValue.FrameDimensionPage     // 23L
                 );
         }
         encParameters.Param[1] = new System.Drawing.Imaging.EncoderParameter(
             System.Drawing.Imaging.Encoder.ColorDepth, 24L
             );
         encParameters.Param[2] = new System.Drawing.Imaging.EncoderParameter(
             System.Drawing.Imaging.Encoder.Compression
             , (long)System.Drawing.Imaging.EncoderValue.CompressionLZW
             );
         if (firstImage == null)
         {
             firstImage = tiffImage;
             ((System.Drawing.Bitmap)tiffImage).SetResolution(96, 96);
             firstImage.Save(outputStream, tiffCodec, encParameters);
         }
         else
         {
             ((System.Drawing.Bitmap)tiffImage).SetResolution(96, 96);
             firstImage.SaveAdd(tiffImage, encParameters);
         }
         if (encParameters.Param[0] != null)
         {
             encParameters.Param[0].Dispose();
         }
         if (encParameters.Param[1] != null)
         {
             encParameters.Param[1].Dispose();
         }
         if (encParameters.Param[2] != null)
         {
             encParameters.Param[2].Dispose();
         }
     }     // End Using encParameters
     return(firstImage);
 }
Ejemplo n.º 20
0
        public static byte[] MakeClearlyImage(string originalImagePath, long p = 30)
        {
            MemoryStream stream = new MemoryStream();

            //获取原始图片
            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);

            //新建一个bmp图片,并设置缩略图大小.
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(originalImage.Width, originalImage.Height);

            //新建一个画板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并设置背景色
            g.Clear(System.Drawing.Color.FromArgb(100, 255, 255, 255));
            //在指定位置并且按指定大小绘制原图片的指定部分
            //第一个System.Drawing.Rectangle是原图片的画布坐标和宽高,第二个是原图片写在画布上的坐标和宽高,最后一个参数是指定数值单位为像素
            g.DrawImage(originalImage, new System.Drawing.Point()
            {
                X = 0, Y = 0
            });

            System.Drawing.Imaging.ImageCodecInfo encoder = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().FirstOrDefault(a => a.MimeType == "image/jpeg");
            try
            {
                if (encoder != null)
                {
                    System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters(1);
                    //设置 jpeg 质量为 60
                    encoderParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, p);
                    bitmap.Save(stream, encoder, encoderParams);
                    encoderParams.Dispose();
                    return(stream.ToArray());
                }
            }
            catch (System.Exception e)
            {
                new TxtLogHelper().Error(e);
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();
                g.Dispose();
            }
            return(null);
        }
Ejemplo n.º 21
0
 public void GetEncoderByImageFormat()
 {
     System.Drawing.Imaging.ImageCodecInfo codec = ImageHelper.GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
     if (codec != null)
     {
         Console.WriteLine(codec.CodecName);
         Console.WriteLine(codec.MimeType);
         Console.WriteLine(codec.FormatID);
         Console.WriteLine(codec.Version);
     }
 }
Ejemplo n.º 22
0
        /// <summary>
        /// 在图片上生成图片水印
        /// </summary>
        /// <param name="Path">原服务器图片路径</param>
        /// <param name="Path_syp">生成的带图片水印的图片路径</param>
        /// <param name="Path_sypf">水印图片路径</param>
        /// <param name="xPer">x轴位置百分比 (用小数表示)0~1</param>
        /// <param name="yPer">y轴位置百分比 (用小数表示)0~1</param>
        /// <param name="transparence">透明度(用小数表示)0~1</param>
        public static void AddWaterPic(string Path, string Path_syp, string Path_sypf, double xPer, double yPer, float transparence)
        {
            if (!File.Exists(Path))
            {
                throw new FileNotFoundException("指定原图片路径的文件不存在");
            }
            else
            {
                System.Drawing.Image  image  = System.Drawing.Image.FromFile(Path);
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image.Width, image.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                if (!File.Exists(Path_sypf))
                {
                    throw new FileNotFoundException("指定水印图片路径的文件不存在");
                }

                System.Drawing.Image    copyImage = System.Drawing.Image.FromFile(Path_sypf);
                System.Drawing.Graphics g         = System.Drawing.Graphics.FromImage(bitmap);
                g.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                g.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                g.Clear(System.Drawing.Color.Transparent);

                System.Drawing.Imaging.EncoderParameters parms = new System.Drawing.Imaging.EncoderParameters(1);
                parms.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, ((long)80));
                string extension = System.IO.Path.GetExtension(Path).ToLower();
                System.Drawing.Imaging.ImageCodecInfo imgCodeInfo = GetImageCodeInfo(SetImgType()[extension].ToString());

                g.DrawImage(image, 0, 0, image.Width, image.Height);
                float[][] ptsArray =
                {
                    new float[] { 1, 0, 0,            0, 0 },
                    new float[] { 0, 1, 0,            0, 0 },
                    new float[] { 0, 0, 1,            0, 0 },
                    new float[] { 0, 0, 0, transparence, 0 },
                    new float[] { 0, 0, 0,            0, 1 }
                };
                System.Drawing.Imaging.ColorMatrix     colorMatrix    = new System.Drawing.Imaging.ColorMatrix(ptsArray);
                System.Drawing.Imaging.ImageAttributes imageAttribute = new System.Drawing.Imaging.ImageAttributes();
                imageAttribute.SetColorMatrix(colorMatrix);

                int x = (int)Convert.ToInt32(image.Width * xPer);
                int y = (int)Convert.ToInt32(image.Height * yPer);
                g.DrawImage(copyImage, new System.Drawing.Rectangle(x, y, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel, imageAttribute);
                g.Dispose();

                image.Dispose();
                bitmap.Save(Path_syp, imgCodeInfo, parms);
                copyImage.Dispose();
                bitmap.Dispose();
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// GetImageCodecInfo (e.g. from "image/jpg")
        /// </summary>
        /// <param name="mimeType"></param>
        /// <returns></returns>
        private static System.Drawing.Imaging.ImageCodecInfo GetImageCodecInfo(string mimeType)
        {
            System.Drawing.Imaging.ImageCodecInfo codecInfo = null;
            var encoders = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();

            for (int i = 0; i < encoders.Length; ++i)
            {
                if (encoders[i].MimeType == mimeType)
                {
                    codecInfo = encoders[i];
                }
            }
            return(codecInfo);
        }
Ejemplo n.º 24
0
        string Crop(string filename)
        {
            try
            {
                double rubberBandLeft = Canvas.GetLeft(TheCropper);
                double rubberBandTop  = Canvas.GetTop(TheCropper);

                //create a new .NET 2.0 bitmap (which allowing saving) based on the bound bitmap url
                using (System.Drawing.Bitmap source = new System.Drawing.Bitmap(filename))
                {
                    //create a new .NET 2.0 bitmap (which allowing saving) to store cropped image in, should be
                    //same size as rubberBand element which is the size of the area of the original image we want to keep
                    using (System.Drawing.Bitmap target = new System.Drawing.Bitmap((int)TheCropper.ActualWidth, (int)TheCropper.ActualHeight))
                    {
                        //create a new destination rectange
                        System.Drawing.RectangleF recDest = new System.Drawing.RectangleF(0.0f, 0.0f, (float)target.Width, (float)target.Height);
                        //different resolution fix prior to cropping image
                        float hd     = 1.0f; // / (target.HorizontalResolution / source.h);
                        float vd     = 1.0f; // / (target.VerticalResolution / source.VerticalResolution);
                        float hScale = 1.0f; // (float)zoomFactor;
                        float vScale = 1.0f; // (float)zoomFactor;
                        System.Drawing.RectangleF recSrc = new System.Drawing.RectangleF((hd * (float)rubberBandLeft) * hScale,
                                                                                         (vd * (float)rubberBandTop) * vScale,
                                                                                         (hd * (float)TheCropper.Width) * hScale,
                                                                                         (vd * (float)TheCropper.Height) * vScale);
                        using (System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage(target))
                        {
                            gfx.DrawImage(source, recDest, recSrc, System.Drawing.GraphicsUnit.Pixel);
                        }

                        filename = Helpers.GetUniqueFilename(".jpg");
                        FileManager.GarbageFiles.Add(filename);

                        System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];
                        //Set the parameters for defining the quality of the thumbnail...
                        System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
                        eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 99L);

                        target.Save(filename, codec, eParams);

                        return(filename);
                    }
                }
            }
            catch
            {
                return(filename);
            }
        }
Ejemplo n.º 25
0
 private System.Drawing.Imaging.ImageCodecInfo GetEncoderInfo(string mimeType)
 {
     //根据 mime 类型,返回编码器
     System.Drawing.Imaging.ImageCodecInfo   result   = null;
     System.Drawing.Imaging.ImageCodecInfo[] encoders = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
     for (int i = 0; i < encoders.Length; i++)
     {
         if (encoders[i].MimeType == mimeType)
         {
             result = encoders[i];
             break;
         }
     }
     return(result);
 }
Ejemplo n.º 26
0
        } // End Function GetEncoder

        static byte[] CompressImage(System.Drawing.Image image, int jpegQuality)
        {
            byte[] outputBytes = null;

            System.Drawing.Imaging.ImageCodecInfo    jpegEncoder       = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
            System.Drawing.Imaging.EncoderParameters encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
            encoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, jpegQuality);

            using (System.IO.MemoryStream outputStream = new System.IO.MemoryStream())
            {
                image.Save(outputStream, jpegEncoder, encoderParameters);
                outputBytes = outputStream.ToArray();
            }

            return(outputBytes);
        }
Ejemplo n.º 27
0
        public static void CreateThumbnailOld(string fileName)
        {
            string thumbnailFilePath = fileName + ".thumb.jpg";

            //Size newSize = new Size(120, 90); // Thumbnail size (width = 120) (height = 90)

            using (Bitmap bmp = new Bitmap(fileName))
            {
                //bepaal factor
                double factor = 1;
                if (bmp.Size.Width > 120)
                {
                    factor = 120 / (double)bmp.Size.Width;
                }
                else if (bmp.Size.Height > 90)
                {
                    factor = 90 / (double)bmp.Size.Height;
                }
                //maak size van
                int  newWidth  = (int)((double)bmp.Size.Width * factor);
                int  newHeight = (int)((double)bmp.Size.Height * factor);
                Size newSize   = new Size(newWidth, newHeight);

                using (Bitmap thumb = new Bitmap((System.Drawing.Image)bmp, newSize))
                {
                    using (Graphics g = Graphics.FromImage(thumb)) // Create Graphics object from original Image
                    {
                        g.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.Default;
                        g.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.Default;
                        g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;

                        //Set Image codec of JPEG type, the index of JPEG codec is "1"
                        System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1];

                        //Set the parameters for defining the quality of the thumbnail... here it is set to 100%
                        System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);
                        eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);

                        //Now draw the image on the instance of thumbnail Bitmap object
                        g.DrawImage(bmp, new Rectangle(0, 0, thumb.Width, thumb.Height));

                        thumb.Save(thumbnailFilePath, codec, eParams);
                    }
                }
            }
        }
Ejemplo n.º 28
0
        public void saveScreenImage(string file)
        {
            // Grab screen pixels.
            System.Drawing.Rectangle bounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
            System.Drawing.Bitmap    bitmap = this._getDesktopImage(bounds);

            // Create parameters to specify quality.
            System.Drawing.Imaging.ImageCodecInfo    codec      = Program.getCodecInfo("image/jpeg");
            System.Drawing.Imaging.Encoder           encoder    = System.Drawing.Imaging.Encoder.Quality;
            System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters(1);
            parameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(encoder, 100L);

            // Make the output file name.
            string output = ((null == file) ? System.String.Format("{0}_screen_shot.jpg", System.DateTime.Now.ToFileTime()) : file);

            // Write the file.
            bitmap.Save(output, codec, parameters);
        }
Ejemplo n.º 29
0
        private void UpdateCodec()
        {
            encoder               = null;
            CodecLabel.Content    = "No codec found";
            StartButton.IsEnabled = false;

            System.Drawing.Imaging.ImageCodecInfo[] codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
            foreach (var e in codecs)
            {
                if (e.FormatID == format.Guid)
                {
                    encoder                = e;
                    CodecLabel.Content     = "Using Codec " + e.CodecName;
                    StartButton.IsEnabled  = true;
                    encoderParams          = new System.Drawing.Imaging.EncoderParameters(1);
                    encoderParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                    break;
                }
            }
        }
Ejemplo n.º 30
0
        private System.Drawing.Imaging.ImageCodecInfo GetEncoderInfo()
        {
            int j;

            if (jpegCodec == null)
            {
                String mimeType = "image/png";
                System.Drawing.Imaging.ImageCodecInfo[] encoders;
                encoders = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
                for (j = 0; j < encoders.Length; ++j)
                {
                    if (encoders[j].MimeType == mimeType)
                    {
                        jpegCodec = encoders[j];
                        break;
                    }
                }
            }
            return(jpegCodec);
        }
Ejemplo n.º 31
0
        public static void SaveThumbnail(Bitmap bit, Size size, string targePath)
        {
            System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();
            long[] quality = new long[1];
            quality[0] = 75;
            System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
            encoderParams.Param[0] = encoderParam;
            System.Drawing.Imaging.ImageCodecInfo[] arrayICI = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
            System.Drawing.Imaging.ImageCodecInfo   jpegICI  = null;
            for (int x = 0; x < arrayICI.Length; x++)
            {
                if (arrayICI[x].FormatDescription.Equals("JPEG"))
                {
                    jpegICI = arrayICI[x];
                    break;
                }
            }
            var image = Thumbnail(bit, size);

            image.Save(targePath, jpegICI, encoderParams);
        }
 private void InitialiseEncoder()
 {
     imageCodec = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
     encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
     EncoderQuality = 25;
 }