Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 01.08.2011, 12:26   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Битмап

Посоветуйте библиотеку для работы с битмапами: загрузка, сохранение, чтение пискеля, запись пискселя.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 01.08.2011, 12:34   #2
Matt Merkulov
Модератор
 
Аватар для Matt Merkulov
 
Регистрация: 23.10.2005
Сообщений: 219
Написано 62 полезных сообщений
(для 247 пользователей)
Ответ: Битмап

http://ru.wikipedia.org/wiki/FreeImage
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Matt Merkulov за это полезное сообщение:
DjeeZ (07.08.2011), impersonalis (01.08.2011), moka (02.09.2011), SBJoker (01.08.2011)
Старый 01.08.2011, 20:38   #3
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Битмап

EasyBMP (сверхпрост в использовании + опенсоурс), DevIL (чуть помудрёнее но много фич).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (01.08.2011)
Старый 02.09.2011, 01:08   #4
Mark Castle
Знающий
 
Регистрация: 04.10.2008
Адрес: Киев
Сообщений: 230
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Битмап

воистину отличная библиотека - ImageStone. Работает с большим кол-вом форматов, очень одобная. а сохранение битмапа делается легко, выкладываю свою функцию, если интересно:
(говорит это о том, что работать с битмапом через не так уж сложно)
void CaptureScreen(HWND window)
{
	//Получаем прямоугольную область экрана
	RECT windowRect;
	GetWindowRect(window, &windowRect);

	//Размеры битмэпа
	int bitmap_dx = windowRect.right-windowRect.left;
	int bitmap_dy = windowRect.bottom-windowRect.top;

	BITMAPINFOHEADER bmpInfoHeader;
	BITMAPFILEHEADER bmpFileHeader;
	BITMAP* pBitmap;

	bmpFileHeader.bfType = 0x4d42;
	bmpFileHeader.bfSize = 0;
	bmpFileHeader.bfReserved1 = 0;
	bmpFileHeader.bfReserved2 = 0;
	bmpFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

	bmpInfoHeader.biSize = sizeof(bmpInfoHeader);
	bmpInfoHeader.biWidth = bitmap_dx;
	bmpInfoHeader.biHeight = bitmap_dy;
	bmpInfoHeader.biPlanes = 1;
	bmpInfoHeader.biBitCount = 24;
	bmpInfoHeader.biCompression = BI_RGB;
	bmpInfoHeader.biSizeImage = bitmap_dx*bitmap_dy*(24/8);
	bmpInfoHeader.biXPelsPerMeter = 0;
	bmpInfoHeader.biYPelsPerMeter = 0;
	bmpInfoHeader.biClrUsed = 0;
	bmpInfoHeader.biClrImportant = 0;

	BITMAPINFO info;
	info.bmiHeader = bmpInfoHeader;

	BYTE* memory;
	HDC winDC = GetWindowDC(window);
	HDC bmpDC = CreateCompatibleDC(winDC);
	//Создаем битмэп
	HBITMAP bitmap = CreateDIBSection(winDC, &info, DIB_RGB_COLORS, (void**)&memory, NULL, 0);
	SelectObject(bmpDC, bitmap);//Выбираем в контекст битмэп
	BitBlt(bmpDC, 0, 0, bitmap_dx, bitmap_dy, winDC, 0, 0, SRCCOPY);
	ReleaseDC(window, winDC);

	HANDLE hFile = CreateFile(buffer,GENERIC_WRITE,0,NULL,
		OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
	if (hFile == INVALID_HANDLE_VALUE) 
		return;
	DWORD dwWritten = 0;
	WriteFile(hFile, &bmpFileHeader, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);
	WriteFile(hFile, &bmpInfoHeader, sizeof(BITMAPINFOHEADER), &dwWritten, NULL);
	WriteFile(hFile, memory, bmpInfoHeader.biSizeImage, &dwWritten, NULL);
	CloseHandle(hFile);
}
__________________
...мама я больше не буду!
(Offline)
 
Ответить с цитированием
Старый 02.09.2011, 01:09   #5
Mark Castle
Знающий
 
Регистрация: 04.10.2008
Адрес: Киев
Сообщений: 230
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Битмап

Сообщение от impersonalis Посмотреть сообщение
Посоветуйте библиотеку для работы с битмапами: загрузка, сохранение, чтение пискеля, запись пискселя.
Вот, держи.
Вложения
Тип файла: rar ImageStone.rar (236.9 Кб, 459 просмотров)
__________________
...мама я больше не буду!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (02.09.2011)
Старый 02.09.2011, 18:44   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Битмап

а сохранение битмапа делается легко
Эмм.. Легко это так:
SaveImage(image,"c:/image.jpg",JPG);
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Ky3R_94 (09.09.2011), Mhyhr (02.09.2011), Nex (03.09.2011), NitE (02.09.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:25.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com