我正在开发一种解决方案,使我们的用户能够在图像上绘制注释。到目前为止,我正在使用图形对象在另一个上绘制图像(注释)。 问题是我们不能总是从图像中获取Graphics对象(如果我们尝试获取索引格式化图像的图形对象,GDI +会抛出异常)
所以问题是:
我有什么方法可以解决这个问题?我可以暂时更改PixelFormat,获取图形对象,绘制并将其恢复为原始格式,还是可以在不使用Graphics对象的情况下在另一个上绘制图像?
答案 0 :(得分:1)
我无法回答你有关GDI的问题但是我建议你的叠加方法总是采用相同的格式(RGB 24位)图像,并且在执行叠加之前,记住输入图像格式并转换结果图像为用户。所以也许在这个粗糙的伪代码中有三种方法:
UserFormat = GetImageFormat(SourceImage); TempImage = ConvertImageFormat(RGBFormat, SourceImage); ImageWithText = OverlayText(TempImage, Text); UserImage = ConvertImageFormat(UserFormat, ImageWithText);