Bu soruyu zaten sordum, ancak FreeImage ile ilgili. Şimdi ImageMagick ile aynı şeyi yapmaya çalışıyorum (daha doğru olması için, Magick ++ ile). Tek ihtiyacım olan şey, ekranda baskı yapabilme özelliğine sahip görüntüde RGB'nin piksel değerini elde etmektir. Bunu ImageMagick forumunda sordum, ama orada kimse yok gibi görünüyor. Herkes "Image" nesne, daha sonra onunla çalışmak, bir "piksel önbellek" istemek zorunda. Belgeler olanMagick ++ ile piksel rengini alma
7
A
cevap
11
Sürüm bir Verilen 6 API
?, :-(lütfen yardımcı olabilir here ve here:
// load an image
Magick::Image image("test.jpg");
int w = image.columns();
int h = image.rows();
// get a "pixel cache" for the entire image
Magick::PixelPacket *pixels = image.getPixels(0, 0, w, h);
// now you can access single pixels like a vector
int row = 0;
int column = 0;
Magick::Color color = pixels[w * row + column];
// if you make changes, don't forget to save them to the underlying image
pixels[0] = Magick::Color(255, 0, 0);
image.syncPixels();
// ...and maybe write the image to file.
image.write("test_modified.jpg");
Sürüm 7 API
Fakat düşük seviyeli erişim hala mevcutsa: pikseleAccess sürüm 7 değişti (porting bakınız):
MagickCore::Quantum *pixels = image.getPixels(0, 0, w, h);
int row = 0;
int column = 0;
unsigned offset = image.channels() * (w * row + column);
pixels[offset + 0] = 255; // red
pixels[offset + 1] = 0; // green
pixels[offset + 2] = 0; // blue