by M. Oguz YILDIZ
18. April 2011 16:00
Bitmap ile generic görsel üretiyor ve bu hatayi aliyor iseniz, bitmap ya da image nesnesinin save methodu yerine görseli bir stream içerisine alip stream ile yazmayi deneyiniz, muhtemelen probleminiz çözülecektir. Asagida örnek kod mevcut.
GetEncoder(ImageFormat format) methodu imagecodecinfo tipide deger döndüren bir methoddur. Görselin kayit biçimini belirlemek için kullandim.
Not:Bitmap sinifinin save methodunu kullanmak için gerekli parametrelerden biri oldugu için kullanmak durumunda kaldim.
GetJPG100() encoderparameters tipinde bir deger döndüren bir methoddur. Görselin kalitesini ayarlamak için kullandim.
MemoryStream ms = new MemoryStream();
bmp2.Save(ms, GetEncoder(ImageFormat.Png), GetJPG100());
ms.WriteTo(Response.OutputStream);
public static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
public static EncoderParameters GetJPG100()
{
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
return encoderParameters;
}