新手求教c#图片缩放,急,在线等 将外部导入的图片,该图片尺寸随机,缩放成自己想要的一些尺寸比如说1024×768,该如何实现?在下是新手,求大虾帮帮忙了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Bitmap buffer = new Bitmap(1024, 768); Image img = Image.FromFile("C:\\temp.jpg"); Graphics g = Graphics.FromImage(buffer); g.DrawImage(img, 0, 0, 1024, 768); g.Dispose(); buffer.Save("C:\\new.jpg"); 给你个方法吧 /// <summary> /// Resize图片 /// </summary> /// <param name="bmp">原始Bitmap</param> /// <param name="newW">新的宽度</param> /// <param name="newH">新的高度</param> /// <returns>处理以后的图片</returns> public static Bitmap KiResizeImage(Bitmap bmp, int newW, int newH) { try { Bitmap b = new Bitmap(newW, newH); Graphics g = Graphics.FromImage(b); // 插值算法的质量 g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel); g.Dispose(); return b; } catch { return null; } } 相关代码太多了,贴得我都有点不想再贴了,为啥楼主不自己搜索下。PS:楼上两位只给了思路,代码还不能使用,因为尚未处理图片大小,直接按照输入大小绘制新图会让图片变形的——除非就是要它变形。我在网上搜了好多,都用不了,麻烦大虾给我贴个能用的,图片是通过openFileDialog打开,在picturebox中显示,就是通过一个按钮控件,来改变这个图片的尺寸,saveFileDialog来保存图片 public Image Preview(Image image, int width, int height) { try { double w = width; double h = height; double iw = image.Width; double ih = image.Height; double wq = w / iw; double hq = h / ih; Image result = null; if (wq < hq) { result = new Bitmap(image, width, (int)(ih * wq)); } else if (wq > hq) { result = new Bitmap(image, (int)(iw * hq), height); } else { result = new Bitmap(image, width, height); } return result; } finally { image.Dispose(); } }这个是很久以前写的一个方法 等比缩略图图像的不会拉伸图像 图像的宽和高 不会超过你指定的参数的宽和高. 特急跪求,调用自定义的类库中的方法出错! 关于遍历服务器上路径,及路径下文件(回答就给分!回答满意可追加!) 请教:C# FTP上传文件 求助asp.net页面中的Static 和 session 急!!!!!!StreamReader读不出字符 ASP的简单问题 小弟在msdn上看到的一个列子 比较初级 但是看不懂。。希望高手来帮帮忙~~谢谢 怎么把accsess数据库中的数据按一定格式打印出来啊,我不会啊,各位 烦请各位高手指点迷津:《C#编程语言设计与开发》上的一道例题,谢谢 用C#擷取網頁資料同步 求高手指点,如何获取 修改 PPT母版中指定位置的文本内容? 怎么开多线程
Image img = Image.FromFile("C:\\temp.jpg");
Graphics g = Graphics.FromImage(buffer);
g.DrawImage(img, 0, 0, 1024, 768);
g.Dispose();
buffer.Save("C:\\new.jpg");
/// <summary>
/// Resize图片
/// </summary>
/// <param name="bmp">原始Bitmap</param>
/// <param name="newW">新的宽度</param>
/// <param name="newH">新的高度</param>
/// <returns>处理以后的图片</returns>
public static Bitmap KiResizeImage(Bitmap bmp, int newW, int newH)
{
try
{
Bitmap b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b); // 插值算法的质量
g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
g.Dispose(); return b;
}
catch
{
return null;
}
}
PS:楼上两位只给了思路,代码还不能使用,因为尚未处理图片大小,直接按照输入大小绘制新图会让图片变形的——除非就是要它变形。
我在网上搜了好多,都用不了,麻烦大虾给我贴个能用的,图片是通过openFileDialog打开,在picturebox中显示,就是通过一个按钮控件,来改变这个图片的尺寸,saveFileDialog来保存图片
public Image Preview(Image image, int width, int height)
{
try
{
double w = width;
double h = height; double iw = image.Width;
double ih = image.Height; double wq = w / iw;
double hq = h / ih; Image result = null;
if (wq < hq)
{
result = new Bitmap(image, width, (int)(ih * wq));
}
else if (wq > hq)
{
result = new Bitmap(image, (int)(iw * hq), height);
}
else
{
result = new Bitmap(image, width, height);
}
return result;
}
finally
{
image.Dispose();
}
}这个是很久以前写的一个方法 等比缩略图图像的不会拉伸图像 图像的宽和高 不会超过你指定的参数的宽和高.