#include <FreeImage.h> #include <stdio.h> #include <string.h> #define WIDTH 320 #define HEIGHT 240 BYTE my_image[3 * WIDTH * HEIGHT]; void set_pixel(int x, int y, BYTE R, BYTE G, BYTE B) { my_image[3*y*WIDTH + 3*x + 0] = B; my_image[3*y*WIDTH + 3*x + 1] = G; my_image[3*y*WIDTH + 3*x + 2] = R; } void set_colors() { int x, y; // Set everything to black bzero(my_image, sizeof(my_image)); // For each line in the image for (y = 0; y < HEIGHT; y++) { // Set 1/4 width to RED for (x = 0; x < WIDTH/4; x++) set_pixel(x, y, 255, 0, 0); // Set 1/4 width to GREEN for (x = WIDTH/4; x < WIDTH/2; x++) set_pixel(x, y, 0, 255, 0); // Set 1/4 width to BLUE for (x = WIDTH/2; x < 3*WIDTH/4; x++) set_pixel(x, y, 0, 0, 255); // Set 1/4 width to WHITE for (x = 3*WIDTH/4; x < WIDTH; x++) set_pixel(x, y, 255, 255, 255); } } void save_image(int w, int h, const char *fname) { FreeImage_Initialise(); FIBITMAP *img = FreeImage_ConvertFromRawBits(my_image, w, h, 3*w, 24, 0, 0, 0, false); printf("Saving %d x %d image [%s]\n", w, h, fname); FreeImage_Save(FIF_PNG, img, fname, 0); FreeImage_DeInitialise(); } int main() { set_colors(); save_image(WIDTH, HEIGHT, "bars.png"); return 0; }
11665
(c) John Coppens ON6JC/LW3HAZ | correo |