Silverlight调整图像大小和最终文件大小

本文关键字:文件大小 调整 图像 Silverlight | 更新日期: 2023-09-27 18:06:39

我使用silverlight和http://imagetools.codeplex.com/构建了一个文件上传器。

一切都好,但我的最终文件大约是300KB(大小),400 x 300(分辨率)。

当我在MS Paint上打开它并再次保存为jpg时,大小设置为正常

我的怀疑是de encode文件是一个(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); 
    }

Silverlight调整图像大小和最终文件大小

解决了!!

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();