You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForms中使用Image类将JPG转PNG时图片被裁剪的问题求助

解决C# WinForms中JPG转PNG图片被裁剪的问题

直接使用Image.FromFile读取JPG后调用Save转PNG时,原图片的元数据(比如EXIF中的裁剪偏移信息)会导致输出的PNG出现裁剪问题。以下是修正后的实现方案:

修正代码

using (Image originalImage = Image.FromFile(imagePath))
{
    // 创建与原图尺寸匹配的新Bitmap
    using (Bitmap targetBitmap = new Bitmap(originalImage.Width, originalImage.Height))
    {
        using (Graphics g = Graphics.FromImage(targetBitmap))
        {
            // 将原图完整绘制到新Bitmap上,规避元数据影响
            g.DrawImage(originalImage, 0, 0, originalImage.Width, originalImage.Height);
            // 可选:保留原图的分辨率设置
            targetBitmap.SetResolution(originalImage.HorizontalResolution, originalImage.VerticalResolution);
        }
        targetBitmap.Save("Image.png", ImageFormat.Png);
    }
}

关键说明

  • 用using语句自动管理资源,避免内存泄漏
  • 通过重新绘制图片的方式,排除原JPG元数据导致的裁剪逻辑
  • 若需保留原图的DPI参数,可添加SetResolution代码行

内容的提问来源于stack exchange,提问作者Jeff Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:28:15