Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - X Pixmap - Свойства X Pixmap15 мая 2011Оглавление: 1. X Pixmap 2. Прозрачность 3. Свойства X Pixmap Формат X Pixmap обладает рядом достоинств и недостатков которые отличают его от других форматов:
Использование в кодеДостаточно включить файл и можно использовать переменную #include "image.xpm" X Pixmap может использоваться не только для приложений X Window, а также в кроссплатформенных средах разработки. Например поддержка этого формата полностью реализована в библиотеке wxWidgets. Пример программыНиже дан пример программы на C, которая выводит изображение в окно X Window, pixmap файл передан в командной строке:
/*
* Компилируется строкой cc -o test test.c -lX11 -lXpm
* Запускается: ./xtest xpm_file.xpm
*/
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
#include <stdlib.h>
#include <X11/xpm.h>
#include <stdio.h>
#include <errno.h>
extern int errno;
int main
{
Display *dis;
Window win; /* Наше окно */
XEvent event; /* События */
GC gc; /* Графический контекст */
XImage *image,*shape;
XpmAttributes xpm;
int screen, depth, err, width, height;
unsigned char *data;
char file_name;
if {
perror;
exit;
} else {
strcpy;
}
if )) == NULL) {
printf);
exit;
}
win = XCreateSimpleWindow),
0, 0, 1024, 768,
5, BlackPixel),
WhitePixel));
XSetStandardProperties;
gc = DefaultGC);
/* Читаем Pixmap */
xpm.closeness = 40000;
xpm.valuemask = XpmSize | XpmCloseness;
err = XpmReadFileToImage;
if {
printf;
return -1;
} else if {
printf;
return -1;
} else if {
printf;
return -1;
} else
printf;
XMapWindow;
XSelectInput;
while {
XNextEvent;
if {
switch {
/* Вывести рисунок */
case Expose:
XPutImage;
break;
/* Нажали клавишу "q" */
case KeyPress:
if == XK_q) {
XDestroyImage;
XCloseDisplay;
exit;
}
break;
}
}
}
return 0;
}
Просмотров: 3039
|