如何在Qimage中设置像素并保存更改
How to set pixels in Qimage and save changes
我想更改一些像素的颜色并保存更改,但不起作用。我有这个循环。首先我在屏幕上打印真值:比如255173…,第二个cout在屏幕上显示零。直到这里是好的。
for (int i = 0; i < image->width(); i++) {
for (int j = 0; j < image->height(); j++) {
QRgb pixelData = image->pixel(i,j);
int red = qRed(pixelData);
cout<<red<<endl;
image->setPixel(i, j, qRgb(0, 0, 0));
pixelData = image->pixel(i,j);
int red2 = qRed(pixelData);
cout<<red2<<endl;
}
}
在这个循环之后,我保存了图像。当我重新打开或阅读此图像时。我得到了默认值。
if (image->save(out.c_str())) {
std::cout << "save successful!" <<out<<std::endl;
}
路径是好的。所以我认为setPixel不适用于保存功能?我该怎么解决?
您在保存/加载方面有问题,而不是在setPixel方面。您可能需要在保存时指定一种格式,例如:
image.save("somefile.jpg", "JPG");
问题是保存在JPG中。不知何故,这种格式会更改值,并尝试将文件缩小。我在巴布亚新几内亚储蓄,我的价值观保持原样。
image.save("somefile.png", "PNG");
相关文章:
- 访问和更改基于另一个图像的像素颜色-opencv c++
- 如何使用 openCV 更改图像每个像素的颜色
- 为什么更改视频格式会更改其像素值?
- 无法在QImage上绘制或更改像素的颜色
- 使用 std::vector 保存 BMP 像素图
- 尝试在给定阈值下将所有像素更改为黑白
- 从屏幕 HDC 保存像素
- 无法将图像的所有像素更改为所选颜色
- 可视化/保存大量像素
- 如何使用 glDrawPixel 时更改像素的颜色,我的像素始终为红色
- 如何在C程序中直接更改视频内存映射来绘制像素(无库函数)
- OpenCV:imwrite在保存时更改通道像素值
- 从HWND获取并保存位图(每个像素8,4,1位-黑色图像)
- 我必须更改的内容是我可以从数组中读取像素值
- 在 openCV 中更改单个像素颜色
- 解密不适用于保存的图像,但适用于图像的像素操作矩阵
- 将用于绘制为位图的像素格式更改
- 自由型 2.有没有办法在加载字体后更改字体的大小(以像素为单位)
- 如何保存到白色像素的矢量坐标
- 如何在Qimage中设置像素并保存更改