我使用silverlight和http://imagetools.codeplex.com/构建文件上传器。
一切正常,但我的最终文件大约300KB(大小),400 x 300(分辨率)。
当我在MS Paint上打开它并再次将其另存为jpg时,大小设置为正常。
我怀疑是de enconde o文件是(png)但我现在不怎么样。
我的代码:
public static byte[] resize(string extension,int width,int height,int orientation)
{
//Decoders.AddDecoder<BmpDecoder>();
//Decoders.AddDecoder<PngDecoder>();
Decoders.AddDecoder<JpegDecoder>();
//Decoders.AddDecoder<GifDecoder>();
var newImg = new ExtendedImage();
if (orientation == 0)
newImg = ExtendedImage.Resize(img, width, height, new ImageTools.Filtering.NearestNeighborResizer());
else
newImg = ExtendedImage.Resize(img, height, width, new ImageTools.Filtering.NearestNeighborResizer());
//newImg = applyWaterMark(newImg);
//var s = new MemoryStream();
var s = newImg.ToStreamByExtension(extension);
return ReadFully(s);
}
答案 0 :(得分:1)
解决!!
var e = new ImageTools.IO.Jpeg.JpegEncoder();
var s = new MemoryStream(); e.Quality = 90;
e.Encode(newImg,s);
//var s = newImg.ToStream();
return s.GetBuffer();