2
You'll need to choose a C or C++ graphics library. Qt and SDL are two good choices.
您需要选择一个C或c++图形库。Qt和SDL是两个不错的选择。
=========================================================================
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
If all you want is to draw an image, another choice is libGD (along with the aforementioned Qt and SDL).
如果您想要绘制一个图像,另一个选择是libGD(以及前面提到的Qt和SDL)。
Jere is an example:
Jere就是一个例子:
https://cs.marlboro.edu/code/c/GD_example/GD_example.c
https://cs.marlboro.edu/code/c/GD_example/GD_example.c
include
#include
// Dimensions of image in pixels
#define IMAGE_WIDTH 300
#define IMAGE_HEIGHT 300
// The data to display is in a DATA_SIZE x DATA_SIZE array,
// which will have its (left,top)=(x,y) corner at
// (DATA_TOP, DATA_LEFT) pixels in from the (0,0)=(left,top) pixel.
#define DATA_SIZE 8
#define DATA_LEFT 30
#define DATA_TOP 30
// Position of some blue lines drawn in the image.
#define BORDER 10
#define LEFT BORDER
#define RIGHT IMAGE_WIDTH - BORDER
#define TOP BORDER
#define BOTTOM IMAGE_HEIGHT - BORDER
// See the bottom of this code for a discussion of some output possibilities.
char* filename = "GD_example.png";
// Some values that'll go into the image as shades of gray.
// Range is 0 to 255 (i.e. 8 bits, which is the standard range of intensity).
// To do this sort of thing with floating point data or other data,
// you'd first scale your numbers to be in this 0 to 255 range.
int data[DATA_SIZE][DATA_SIZE] ={
{ 2, 10, 10, 10, 10, 10, 10, 2},
{ 10, 20, 30, 40, 40, 30, 20, 10},
{ 10, 30, 100, 100, 100, 100, 30, 10},
{ 10, 40, 100, 200, 200, 100, 40, 10},
{ 10, 30, 100, 200, 200, 100, 30, 10},
{ 10, 20, 100, 100, 100, 100, 20, 10},
{ 10, 10, 20, 30, 40, 30, 10, 10},
{ 2, 10, 10, 10, 10, 10, 10, 2}
};
int main(){
FILE* outfile; // defined in stdio
gdImagePtr image; // a GD image object
int white, blue, gray[255]; // some GD colors
int i, x, y; // array subscripts
printf("=== GD example ===\n");
printf("Creating %i by %i image.\n", IMAGE_WIDTH, IMAGE_HEIGHT);
image = gdImageCreate(IMAGE_WIDTH, IMAGE_HEIGHT);
// Or image = gdImageCreateTrueColor(IMAGE_WIDTH, IMAGE_HEIGHT);
// followed by colors like white=gdTrueColor(255,255,255) that don't
// need to refer to any one image's color table.
white = gdImageColorAllocate(image, 255,255,255); // 1st is background
blue = gdImageColorAllocate(image, 0,0,255); // (red,green,blue)
for (i=0; i<255; i++){
gray[i] = gdImageColorAllocate(image, i,i,i);
}
printf("Drawing some blue lines.\n");
gdImageLine(image, LEFT,TOP, RIGHT,TOP, blue); // draw lines in image
gdImageLine(image, RIGHT,TOP, RIGHT,BOTTOM, blue); // +-----------------+
gdImageLine(image, RIGHT,BOTTOM, LEFT,BOTTOM, blue); // |0,0 WIDTH,0|
gdImageLine(image, LEFT,BOTTOM, LEFT,TOP, blue); // |0,HEIGHT |
// +-----------------+
printf("Filling in some gray pixels.\n");
for (x=0; x