【问题标题】:How to save a skewed image in C#如何在 C# 中保存倾斜的图像
【发布时间】:2023-03-08 13:41:01
【问题描述】:

我正在拍摄一张位图,将其裁剪并在表单上倾斜。那部分很好,但是我想保存歪斜的图像 - 我已经尝试了下面的代码,但收到了“通用 GDI+ 异常”

e.Graphics.DrawImage(bmpCrop, destinationPoints);

        try
        {
            IntPtr hbitmap = e.Graphics.GetHdc();            

            Image img = Image.FromHbitmap(hbitmap);

            img.Save("temp.png");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

感谢您的任何指导或建议!

【问题讨论】:

  • Hdc 不是指向位图的指针。
  • 我想这就是我被挂断的地方 - 我如何获得倾斜图像 e.Graphics.DrawImage(bmpCrop, destinationPoints) 的指针?
  • 您是直接在表单上绘图吗?如果是这样,您应该绘制到内存中的位图并将该位图绘制到表单。在这种情况下,您将可以直接访问位图句柄和图像。以下是有关绘制位图的内容:stackoverflow.com/a/917330/2416958
  • 就是这样!非常感谢您快速准确的回复。

标签: c# image save skew


【解决方案1】:

您必须指定编解码器,否则将使用InMemoryBMP,因此使用img.Save("temp.png", System.Drawing.Imaging.ImageFormat.Png);,您将处于良好状态

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2011-05-20
    相关资源
    最近更新 更多