/* Copyright (C) 2024 Aiden Gall This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "util.h" #include #include #include /* write farbfeld image to fd * - canvas will be mutated unless host architecture is big endian */ void farbfeld_write(FILE *const fd, uint16_t *const canvas, const size_t canvas_size, uint32_t width, uint32_t height) { size_t i; width = htonl(width); height = htonl(height); for (i = 0; i < canvas_size; i++) canvas[i] = htons(canvas[i]); efwrite("farbfeld", sizeof(char), 8, fd); efwrite(&width, sizeof(uint32_t), 1, fd); efwrite(&height, sizeof(uint32_t), 1, fd); efwrite(canvas, sizeof(uint16_t), canvas_size, fd); }