【问题标题】:Convert the image in a PictureBox into a bitmap将 PictureBox 中的图像转换为位图
【发布时间】:2012-05-18 11:20:27
【问题描述】:

我使用以下代码将 PictureBox 中的图像转换为位图:

bmp = (Bitmap)pictureBox2.Image;

但我得到的结果是bmp = null。谁能告诉我我是怎么做到的?

【问题讨论】:

  • 只有当 Image 属性为空时才会发生这种情况。先分配属性。
  • 如果图像不为空,我猜你会得到一个异常。如果图像不是直接位图,则无法将图像对象转换为位图。

标签: c# .net winforms bitmap


【解决方案1】:

据我了解,您尚未指定 PictureBox 的图像 属性,因此它在类型转换时返回 null。

PictureBox 属性自动转换图像格式,如果您在 Image 属性上看到工具提示,它将显示 System.Drawing.Bitmap。检查您的图像 属性已正确分配。

检查一下,它在我身边工作。

private void button1_Click(object sender, EventArgs e)
{
    var bmp = (Bitmap)pictureBox1.Image;
}

private void TestForm12_Load(object sender, EventArgs e)
{
    pictureBox1.Image = Image.FromFile("c:\\url.gif");
}

/// 使用位图类

 Bitmap bmp = new Bitmap(pictureBox2.Image);

您可以直接将pictureBox2.Image 转换为Bitmap,也可以使用Bitmap 类转换为Bitmap 类对象。

参考:Bitmap Constructor (Image).

您可以通过Bitmap Class在此处找到更多选项

【讨论】:

  • 你永远不应该使用Image.FromFile(path)。它是New Bitmap(path) 构造函数的简单包装器,它完全没有额外的优势,但在此过程中失去了更具体的Bitmap 类型。所以只需使用 New Bitmap(path) 构造函数。也不建议在结果上使用new Bitmap(image),因为它将图像转换为 32bpp ARGB,如果您正在处理要在以后保存或操作时保留的特定图像类型(如 24bpp RGB 或索引图像),则可能不需要这样做带调色板)。
【解决方案2】:
Bitmap bitmap = new Bitmap(pictureBox2.Image)

http://msdn.microsoft.com/en-us/library/ts25csc8.aspx

【讨论】:

  • 嗨 Tilak,我刚刚应用了代码,但它给了我一个错误,因为“对象引用未设置为对象的实例”
  • 你检查pictureBox2.Image是否为空
【解决方案3】:

我想你在找这个:

Bitmap bmp = new Bitmap(pictureBox2.Image)

【讨论】:

    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多