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

C# 修改位图像素颜色后导出未生效,代码问题排查求助

问题错误说明
  • 核心逻辑错误:你对像素的修改操作是在临时创建的Bitmap实例image上完成的,最终导出时调用的仍然是未做任何修改的原始Image对象File的Save方法,修改后的像素内容自然不会被写入到导出文件中。
  • 潜在问题:代码未对GDI+相关的非托管资源做释放处理,长期运行可能出现内存泄漏、源文件被锁定无法修改的问题。
修复方案

你只需要将导出时的保存对象替换为修改后的Bitmap对象即可,同时补充资源释放逻辑,修改后的Export_Click代码参考如下:

private void Export_Click(object sender, EventArgs e)
{
    // 用using自动释放Bitmap资源
    using (Bitmap image = new Bitmap(File))
    {
        image.SetPixel(50, 50, Color.Black);
        SaveFileDialog f = new SaveFileDialog();
        f.Filter = "JPG(*.JPG)|*.jpg|PNG(*.PNG)|*.png";
        if (f.ShowDialog() == DialogResult.OK)
        {
            // 保存修改后的Bitmap对象,而非原始的File对象
            image.Save(f.FileName);
            // 如果需要同步更新界面显示的图片,可同步更新File对象
            File?.Dispose();
            File = new Bitmap(image);
            pictureBox1.Image = File;
        }
    }
}

内容的提问来源于stack exchange,提问作者Apple Pie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 17:24:03