gpt4 book ai didi

c++ - 更改图像位图或在图像上绘制位图会导致图像消失

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:03 24 4
gpt4 key购买 nike

我正在使用两个位图在其上绘制图形。绘制后我需要在两个图像中显示位图图片。将位图分配给 Image 或将位图绘制到 Image 有时会导致 Image 消失(您可以看到表格背景)。我试过这个:

   Image->Picture->Bitmap->Assign(bitmap1);
Image2->Picture->Bitmap->Assign(bitmap2);


Image->Picture->Graphic = bitmap1;....


Image->Canvas->Draw(0,0,bitmap1);....


Image->Picture->Bitmap->Canvas->Draw(0,0,bitmap1);

如果我在 Image 和 Image2 重绘之间没有 Sleep(100),则 Image2 大部分时间都不可见。添加 Image2->Refresh 也有帮助,但问题有时仍然会出现在两个图像上。

如果我将创建的位图或图像保存到 .jpeg 文件,所有 .jpeg 图像都是正确的,并且没有一个是空的。还有Image->height, Image->picture->bitmap->height and width 总是正确的。

谁能告诉我,我做错了什么?

最佳答案

过了一会儿我意识到,我保存的位图和图像并不都是正确的。如果我看不到图片,则说明它没有完全绘制。没有错误,它是随机发生的,但我发现,一旦程序开始忽略我的绘图命令,它就不会绘制任何东西,直到函数结束才开始绘图。所以 - 在将位图分配给图像之前检查我是否仍然可以绘制,我这样做了:

            Image3->Canvas->Pixels[y][0] = clRed;
TColor test = Image3->Canvas->Pixels[y][0];

Image3->Canvas->TextOut(y, 0, Device1->name);

TColor test2 = Image3->Canvas->Pixels[y][0];

if(test == test2)
{
imageUpdated = false;
delete Image3;
return;
}

Image->Picture->Graphic = Image3;
imageUpdated = true;

这意味着 - 我将一个像素更改为红色,然后在文本上打印,这应该使更改后的像素变为白色。基于此,我检查了颜色是否改变(能够改变像素颜色和打印​​文本)。

我真的不知道为什么它有时会开始忽略绘图命令,但我希望,如果有人遇到与我相同的问题,这个答案可能会对他/她有所帮助。

关于c++ - 更改图像位图或在图像上绘制位图会导致图像消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12053804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com