| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Графика на С++ |
| Автор: Ученик 10.6.2004, 22:48 |
| Может кто-нибудь показать начинающему простую законченную программу на С++, позволяющую вставить в нее созданную в графическом редакторе цветную картинку? Имею BC31 и Visual C++ 6. Хотелось бы в DOS и Windows. Литература не доступна. В Интернете и на форуме впервые. Подсказать, что и как, некому. |
| Автор: Ander 10.6.2004, 23:09 |
| Посмотри вот здесь, там их целый вагон: http://www.codeproject.com/bitmap/ |
| Автор: Ученик 12.6.2004, 10:33 |
| Спасибо. А есть что-нибудь на русском? |
| Автор: chipset 12.6.2004, 10:38 |
| Для Windows - www.firststeps.ru или лучше покупай Круглинского Программирование Microsoft Visual C++ 6.0... А в Досе я бы помог но не знаю, поищи по форуму недавно тема была... |
| Автор: Ученик 12.6.2004, 18:51 |
| Спасибо, кое-что отыскал. Теперь бы научиться это использовать в своих целях... |
| Автор: Ученик 15.6.2004, 09:23 |
| Отыскал для BC31, нарисовал, вставил. Однако цвета вставленной картинки не совпадают с нарисованной в Paint. C чем это связано? Может, с палитрой? Можно ли что-нибудь сделать? Вот код: #include <conio.h> #include <stdio.h> #include <fcntl.h> #include <sys\stat.h> #include <io.h> #include <string.h> #include <ctype.h> #include <math.h> #include <graphics.h> unsigned long readnb(int handle,int from,int n) { int j=0; unsigned char c; unsigned long s=0; lseek(handle,from,SEEK_SET); do { read(handle,&c,1); s=s+c*pow(2,j*8); j++; }while(j<n); return(s); } int main(void) { int handle,i,bppixel,ctype,x=0,y=0; FILE *stream; unsigned char ch,r,g,b; unsigned long fsize,width,height,asize,aloc; int graphdriver=DETECT; int graphmode; initgraph(&graphdriver,&graphmode,""); clrscr(); if ((handle=open("my.bmp",O_RDONLY | O_BINARY))==-1) { perror("Error"); } stream=fdopen(handle,"r+"); fsize=readnb(handle,2,4); printf("Size: %lu\n",fsize); aloc=readnb(handle,10,4); printf("Array location: %lu\n",aloc); width=readnb(handle,18,4); printf("Width: %lu\n",width); height=readnb(handle,22,4); printf("Height: %lu\n",height); bppixel=readnb(handle,28,2); printf("Bit per pixel: %u\n",bppixel); ctype=readnb(handle,30,4); printf("Compression type: %u\n",ctype); asize=readnb(handle,34,4); printf("Array size: %lu\n",asize); getch(); lseek(handle,aloc,SEEK_SET); cleardevice(); y=height; do { read(handle,&r,1); read(handle,&g,1); read(handle,&b,1); putpixel(x,y,((r+g+b)/51)); x++; if (x==width) { x=0; y--; } //getch(); }while(!eof(handle)); fclose(stream); close(handle); getch(); closegraph(); } |
| Автор: Конструктор 17.6.2004, 11:07 |
| Имеется библиотечка собственного приготовления, но там формат файлов собственный и элементарный. Используется сам битмап отдельно и палитра для этого битмапа отдельно. Есть редактор и того и другого под DOS. Еще куча всяких приблуд под это дело. Написано на BC++ 3.1 с использованием asm (вставленный прямо в сишный сорс) Ежель кому надобно не жалко. |
| Автор: Ученик 17.6.2004, 17:06 |
| Конечно надобно! Хорошо бы на работающих примерах, подобно данному выше коду. Нет пока ни знаний, ни опыта в использовании отдельных фрагментов, описанных в доступной мне литературе. |
| Автор: Конструктор 18.6.2004, 09:40 |
| Вроде отправилось. |
| Автор: Ученик 18.6.2004, 17:13 |
| Спасибо, получил. Пример запустил - оригинально! Есть что изучать. Картинки созданы с помощью MTX_EDIT? Какой путь прописывать в SETUP? К "файлам редактора" - это к папке MTX_EDIT? |
| Автор: Конструктор 21.6.2004, 06:55 |
| Да, в setup прописывается путь к файлам MTX_EDIT. т.е. например C:\Dir\dir\MTX_EDIT. Картинки были выдраны из дума, сконвертированы в MTX и в grayscale переведены. |
| Автор: shara 29.6.2004, 03:38 |
| я тут проходил мимо и про библиотечку услышал, я тоже такю себе хочу, если можно залейте на мыло naSHary@yandex.ru |
| Автор: Конструктор 29.6.2004, 08:08 |
| Вроде снова отправилось. Добавлено @ 08:08 Вроде снова отправилось. |
| Автор: shara 29.6.2004, 12:36 |
| ну спасибо, прикольная штука, однако |
| Автор: Гость_lamer 30.10.2004, 23:32 |
| lyudi dobrie ? pomogite etot ******** c++ dakanat kak ya mogu vstavit kartinku v c++ v 16 zvetovom ?/// esli mojno posmatret na ishodniki itd? |
| Автор: Guest 3.12.2004, 20:50 |
| люди подскажите пл3 где можно скачать библиотеку graphics.h, а то она у меня какая-то глю4ная... 3аранее спаси6о |