c#设置图片的dpi_C#更改上传图像的dpi

这篇博客探讨了如何在C#中更改图像的DPI,特别是将上传的高分辨率图像转换为适合网页的72DPI。作者创建了一个扩展方法`SetDpiTo72`,但在尝试保存图像时遇到了问题,DPI未能成功更新。文章展示了代码示例,并在评论中提供了更新的代码以解决保存时的异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我必须遵循被调用来改变图像分辨率的函数.我想这样做,所以上传的图像例如300dpi将被修改为72dpi(对于web).这个问题与我在这里工作的

another question有关.

我创建了一个扩展方法,以便能够在我的应用程序中的更多位置使用此功能,而不是仅在上载新文件时. (见上述问题)

public static byte[] SetDpiTo72(this byte[] imageToFit,string mimeType,Size newSize)

{

using (MemoryStream memoryStream = new MemoryStream(),newMemoryStream = new MemoryStream())

{

memoryStream.Write(imageToFit,imageToFit.Length);

var originalImage = new Bitmap(memoryStream);

using (var canvas = Graphics.FromImage(originalImage))

{

canvas.SmoothingMode = SmoothingMode.AntiAlias;

canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;

canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;

canvas.DrawImage((Image)originalImage,newSize.Width,newSize.Height);

newBitmap.SetResolution(72,72);

newBitmap.Save(newMe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值