gpt4 book ai didi

c++ - 如何通过 ImageMagicK 将图像数据放入数组?

转载 作者:行者123 更新时间:2023-12-02 10:25:23 27 4
gpt4 key购买 nike

我不知道从哪里开始。
我想用数组中的 ImageMagick 读取图像。
此时,没有错误:

My_image.read("c:\\a.jpg");
我想将我已经读取的图像数据放入数组中。
我想使用 ImageMagick 库写入文件。
这是我的代码:
...
master.read("c:\\a.jpg");

Image my_image("640x480", "white");
my_image.modifyImage();
Pixels my_pixel_cache(my_image);
PixelPacket* pixels;
int start_x = 0, start_y = 0, size_x = 640, size_y = 480;
*pixels = Color("black");
*(pixels+200) = Color("green");
my_pixel_cache.sync();

...
但我无法获得 a.jpg 的数组.如何获取 a.jpg图像数据到一个数组来修改?

最佳答案

你必须初始化你的PixelPacket :

PixelPacket *pixels = my_image.getPixels(0, 0, 640, 480);

然后您可以使用嵌套循环逐像素修改图像:
int w = 640;
for (int y = 0; y != h; ++y)
for (int x = 0; x != w; ++x)
{
pixels[w * y + x].red = 255; // if MAGICKCORE_QUANTUM_DEPTH=8
pixels[w * y + x].green = 0;
pixels[w * y + x].blue = 0;
}
Magick::PixelPacketstruct其中包含 red , greenblue成员(加上第四 channel 的另一个成员)。最后,将更改写入磁盘:
my_image.syncPixels();
my_image.write("c:\\temp\\output.jpg");

关于c++ - 如何通过 ImageMagicK 将图像数据放入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361457/

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