| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Как узнать, сколько байт занимает рисунок? |
| Автор: Тутанхамец 19.2.2006, 17:50 |
| Хочу скопировать рисунок из PictureBox в массив байтов. Насколько я понимаю, свойство Image - это указатель... на что? на байты рисунка? Тогда скопировать их можно с помощью CopyMemory. Но как узнать, сколько байт он занимает? Или хэндл битмапа - это указатель на какую-нибудь структуру? |
| Автор: cardinal 19.2.2006, 18:14 |
| Про структуру bmp читай тут: http://forum.vingrad.ru/index.php?showtopic=83898&view=findpost&p=645775 |
| Автор: Тутанхамец 21.2.2006, 10:37 |
| Спасибо, со структурой битмапа вроде понятно. Когда он лежит в файле. А вот если он уже прочитан в picturebox? Что я найду в памяти, юзая Picture1.image как указатель? Весь файл с BitmapFileHeader, BitmapInfoHeader и т.п.? Попытался через CоpyMemory - вроде непохоже ни на что. В общем, как выглядит битмап, когда он лежит в оперативной памяти? И является ли .image тем же самым, что и HBITMAP. |
| Автор: Exception 21.2.2006, 11:46 |
| А зачем тебе его копировать в массив байтов? Давай найдем другой путь решения задачи |
| Автор: cardinal 21.2.2006, 18:34 |
| Вот и я думаю. Если он лежит в PictureBox, то значит он и на диске где-то лежит. Ну а если так, то посмотри тут пример... http://vingrad.ru/VB-VB-002142 p.s. так и не дописал статью кстати... |
| Автор: Exception 21.2.2006, 19:29 |
| Кстати, в каком-то из свойств хранится hBitmap картинки. Через него и можно ее потом использовать. |
| Автор: Тутанхамец 21.2.2006, 19:46 | ||||
Кажется, это свойство Image.
А надо-то (кроме ослиного упрямства Складывать файлы картинок в один файл (назовем его "общий") я могу. Но вот когда надо загружать их в Picture возникают проблемы. Можно, конечно, выдирать картинку из "общего" файла в память, скидывать во временный файл (с одной-единственнйо кратинкой), читать этот временный файл в PictureBox и стирать его с диска. Но, во первых, это некрасиво. Во вторых, это медленно. Я хочу считать все картинки из "общего" файла в оперативную память и прямо из памяти грузить их в PictureBox. Но как получить HBITMAP чего-то, что лежит в оперативке? В общем вопрос такой - как обойтись без посредничества временного файла? Если бы знать, сколько байт занимает картинка, когда она в PictureBox, то я бы просто скопировал эти байты, а потом запихнул бы их обратно. |
| Автор: SCINER2 28.2.2006, 12:40 | ||
| Что-то форум не пускает меня под старым ником SCINER =( Вот:
|
| Автор: Тутанхамец 28.2.2006, 19:06 |
| Да! |