У меня есть двумерный массив булевых значений (bool[][]), и мне нужно записать этот массив в BMP. То есть, к примеру, есть такая матрица:
[0 0 0 0 1]
[0 0 1 1 1]
[0 0 0 0 1]
[0 0 0 0 1]
[0 0 0 0 1]
и мне нужно каким-то образом получить из нее .bmp файл с изображением цифры "1". То бишь, true — черный пиксель, false — белый. Как можно это сделать в D?
Ответ
Для записи BMP можете воспользоваться, например, библиотекой arsd, из которой потребуется модули bmp и color
import arsd.bmp, arsd.color;
void main()
{
ubyte[][] image = [
[ 0, 0, 0, 0, 0, 0, 0, 1],
[ 0, 0, 0, 0, 0, 0, 1, 1],
[ 0, 0, 0, 0, 0, 1, 1, 1],
[ 0, 0, 0, 0, 1, 1, 1, 1],
[ 0, 0, 0, 1, 1, 1, 1, 1],
[ 0, 0, 1, 1, 1, 1, 1, 1],
[ 0, 1, 1, 1, 1, 1, 1, 1],
[ 1, 1, 1, 1, 1, 1, 1, 1],
[ 0, 1, 0, 1, 0, 1, 0, 1],
];
auto col = [Color.black, Color.green];
auto w = image[0][].length;
auto h = image[].length;
ubyte[] data;
for (int j=0; j
Комментариев нет:
Отправить комментарий