C# 我已经将二进制转化为图片,请问如何设置图片的尺寸。

System.IO.MemoryStreamms=newSystem.IO.MemoryStream(streamByte);System.Drawing.Imageim... System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
img.Save("e:\\Server\\SampImag.jpg");
已经生成图片,如和设置图片的尺寸,请结合我的代码。
展开
 我来答
syht2000
高粉答主

推荐于2016-06-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

先加入下面的方法,然后把你最后一行改为

MakeThumbnail(img,"e:\\Server\\SampImag.jpg",200,200,"W");//200是你要的图片大小,其它参数含义自己看


public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
 {
Image originalImage = Image.FromFile(originalImagePath);
MakeThumbnail(originalImage,thumbnailPath,width,height,mode);
}
public static void MakeThumbnail(Image img, string thumbnailPath, int width, int height, string mode)
        {
            Image originalImage = img;
            
            int towidth = width;
            int toheight = height;
        
            int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;        
            switch (mode)
            {        
                case "HW"://指定高宽缩放(可能变形)                
                    break;
                case "W"://指定宽,高按比例                    
                    toheight = originalImage.Height * width/originalImage.Width;
                    break;
                case "H"://指定高,宽按比例
                    towidth = originalImage.Width * height/originalImage.Height;                    
                    break;        
                case "Cut"://指定高宽裁减(不变形)                
                    if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height*towidth/toheight;
                        y = 0;
                        x = (originalImage.Width - ow)/2;
                    }
                    else
                    {
                        ow = originalImage.Width;
                        oh = originalImage.Width*height/towidth;
                        x = 0;
                        y = (originalImage.Height - oh)/2;
                    }
                    break;                    
                default :
                    break;
            }    
            
            //新建一个bmp图片
            Image bitmap = new System.Drawing.Bitmap(towidth,toheight);
            //新建一个画板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);
            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空画布并以透明背景色填充
            g.Clear(Color.Transparent);        
            //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight), 
                new Rectangle(x, y, ow,oh),
                GraphicsUnit.Pixel);
            try
            {            
                //以jpg格式保存缩略图
                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch(System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();                        
                g.Dispose();
            }
        }
追问
太给力了!我已经测试了,解决了我的问题!谢谢!
百度网友8cac7d3
2014-06-09 · TA获得超过223个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:122万
展开全部
保存的时候何必设置尺寸?显示的时候设置就得了
更多追问追答
追问
呵呵,这话让你说的,既然我要设置当然有设置的原因!
追答
保存的图片也根本没有尺寸,只有像素,而且取决于你还原的img
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式