Нежелательные вертикальные линии при создании изображений BMP/PNG.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Нежелательные вертикальные линии при создании изображений BMP/PNG.

Сообщение Anonymous »

Я пытаюсь создать изображения с помощью stb, но созданные изображения имеют тенденцию иметь вертикальные линии. Код для генерации данных изображения находится в этой функции.

Код: Выделить всё

    u64* pixels = (u64 *) malloc(sizeof (u64) * height * width);
if (!pixels) {
perror("[Error] Unable to allocate image");
return -1;
}

Image img = {};
img.Height = height;
img.Width = width;
img.Pixels = pixels;

for (u64 i = 0; i < height; i++) {
for (u64 j = 0; j < width; j++) {
pixels[i * width + j] = 0xff818181;
}
}

ExportImageBMP(img, "output.bmp");
Где

Код: Выделить всё

i64 ExportImageBMP(const Image &img, const char *filename) {
return stbi_write_bmp(filename, img.Width, img.Height, 4, img.Pixels);
}
Ожидаемое изображение представляет собой сплошное изображение серого цвета, но на сгенерированном изображении есть вертикальные линии. При увеличении мы видим следующий артефакт:
Изображение

Код компилируется в WSL с помощью g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 и stb_image_write. (https://github.com/nothings/stb/blob/f1 ... ge_write.h)

Подробнее здесь: https://stackoverflow.com/questions/798 ... png-images
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»