Magick ++ всегда генерирует черные изображения - PullRequest
1 голос
/ 10 октября 2019

Это код, который должен генерировать растровое изображение: пиксели получены из функции GetPixels () Windows, которая использует контекст устройства для получения пикселя. Я убедился, что данные пикселей не всегда имеют одинаковое число.

void Bitmap::writeBitmap(std::string filename, Matrix<COLORREF> pixels, int width, int height) {

    Magick::InitializeMagick("");
    Color* white = new Color("white");
    Image* image = new Image(Geometry(120, 120), *white);
    image->type(TrueColorType);

    image->modifyImage();

    Pixels* view = new Pixels(*image);

    size_t columns = 120; size_t rows = 120;

    Quantum* pixelsPointer = view->get(0, 0, 120, 120);
    for (ssize_t row = 0; row < rows; row++) {
        for (ssize_t column = 0; column < columns; column++) {
            COLORREF cr = pixels.get(row, column);
            std::cout << GetRValue(cr) << "|" << GetGValue(cr) << "|" << GetBValue(cr) << std::endl;

            *pixelsPointer++ = GetRValue(pixels.get(row, column));
            *pixelsPointer++ = GetGValue(pixels.get(row, column));
            *pixelsPointer++ = GetBValue(pixels.get(row, column));
        }
    }
    view->sync();

    image->write(filename);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...