GetImageEncoders metodu - Codec Bulur
Şöyle yaparız
Şöyle yaparız. Elimizde bir Image olsun - örneğin bitmap. Bu Image codec kullanılarak önce bir stream'e kaydedilir. Kaydetme için EncoderParameters sınıfının sağladığı parametreler kullanılır. Bu sınıfın constructor metoduna kaç tane parametre sağlayacağımızı gireriz. Örnekte 2 parametre olduğu için 2 veriliyor. Parametreler System.Drawing.Imaging altındaki Encoder.SaveFlag vs. gibi şeylerdir.
Png kalitesinin düşürmek için şöyle yaparız.
Daha sonra stream yeni bir resme dönüştürülür.
Şöyle yaparız
var c= ImageCodecInfo.GetImageEncoders().First(i => i.MimeType == "image/tiff");
Şöyle yaparız.ImageCodecInfo pngEncoder = ImageCodecInfo.GetImageDecoders().Where(k=>
k.FormatID == ImageFormat.Png.Guid).First();
Codec Kullanılarak Mevcut Image Nasıl DönüştürülürŞöyle yaparız. Elimizde bir Image olsun - örneğin bitmap. Bu Image codec kullanılarak önce bir stream'e kaydedilir. Kaydetme için EncoderParameters sınıfının sağladığı parametreler kullanılır. Bu sınıfın constructor metoduna kaç tane parametre sağlayacağımızı gireriz. Örnekte 2 parametre olduğu için 2 veriliyor. Parametreler System.Drawing.Imaging altındaki Encoder.SaveFlag vs. gibi şeylerdir.
Image frame=...
var ms = new System.IO.MemoryStream();
var codec = ...;
EncoderParameters params = new EncoderParameters(2);
param.Param[0]= new EncoderParameter(Encoder.SaveFlag,EncoderValue.MultiFrame);
param.Param[1]= new EncoderParameter(Encoder.Quality,EncoderValue.CompressionLZW);
frame.Save(ms, codec, param);
Önemli olan EncoderParameters sınıfına ne konulacağını bilmek.Png kalitesinin düşürmek için şöyle yaparız.
EncoderParameters encoderParameters;
encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 60L);
Daha sonra stream yeni bir resme dönüştürülür.
ms.Position = 0;
var img = Image.FromStream(ms);
Hiç yorum yok:
Yorum Gönder