Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 08:48   #1
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию TBitmap. Ошибка при загрузке изображения 640х480

Попался на неприятный баг, с которым раньше не сталкивался...
При попытке загрузить в битмап (TBitmap.LoadFromFile) изображение 640х480
вылетает ошибка "Stream read error".
Причем именно при 640х480, любые другие разрешения (например 641х480)
загружаются без проблем.
BMP создавался с помощью фотошопа.
Попробовал создать через Paint - загружается 640х480 о_О

кто-нибудь с этим сталкивался?
чем 640х480 принципиально отличается от 640х481?

кстати, размер файла:
фотошоп 921*656 байт
Pain 921*654 байт

Как быть?
xrob вне форума Ответить с цитированием
Старый 25.03.2013, 08:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Попробовал создать через Paint - загружается 640х480 о_О
Значит дело не в размере, а в сжатии битмапа. Пересохрани в jpeg и загружай его.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2013, 09:15   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Цитата:
Значит дело в сжатии битмапа
мир рухнул =(
а я всю жизнь думал что битмап, он на то и битмап, потому что не сжимается...

Цитата:
Пересохрани в jpeg и загружай его
Огромное спасибо!

Но мне кажется есть решение проще и изящнее, чем вы предложили:
надо написать какой-нибудь OLE сервер, который бы каждый раз запускал Paint,
открывал файл, пересохранял его, а лучше прямо из пеинта рисовал в прогу, бла-бла-бла...

дело даже не в том, что загрузить JPG в Delphi 10 Lite для меня до сих пор проблема,
ибо файла jpeg.pas не существует в природе, а jpeg.dcu не подключается,
а значит и класса TJPEGImage у меня нет...

А что если я аналог фотошопа пишу?
И если нужно открыть именно такой файл?
Блин, неужели все так ограничено, что теперь и BMP без приключений не загрузить?

Кстати, Delphi7 тоже не может загрузить...

Последний раз редактировалось xrob; 25.03.2013 в 09:20.
xrob вне форума Ответить с цитированием
Старый 25.03.2013, 09:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
мир рухнул
Не так уж и рухнул
http://ru.wikipedia.org/wiki/BMP
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.03.2013, 11:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
есть решение проще и изящнее, чем вы предложили:
надо написать какой-нибудь OLE сервер, который бы каждый раз запускал Paint,
открывал файл, пересохранял его, а лучше прямо из пеинта рисовал в прогу, бла-бла-бла...
Вот теперь мир не просто рухнул, а еще и вдребезги... поллитра....
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2013, 19:54   #6
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

100 фунтово сжатие.
stalker1995s вне форума Ответить с цитированием
Старый 09.04.2013, 20:54   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от xrob Посмотреть сообщение
мир рухнул =(
а я всю жизнь думал что битмап, он на то и битмап, потому что не сжимается...
А Вы хоть раз пытались работать с BMP?
Код:
typedef struct tagBITMAPINFOHEADER{ // bmih  
   DWORD  biSize; 
   LONG   biWidth; 
   LONG   biHeight; 
   WORD   biPlanes; 
   WORD   biBitCount 
   DWORD  biCompression; 
   DWORD  biSizeImage; 
   LONG   biXPelsPerMeter; 
   LONG   biYPelsPerMeter; 
   DWORD  biClrUsed; 
   DWORD  biClrImportant; 
} BITMAPINFOHEADER;
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при загрузке на форму прозрачного gif изображения! Yazon2006 Мультимедиа в Delphi 8 04.07.2011 18:08
Ошибка при загрузке изображения asp1k Общие вопросы Delphi 3 01.02.2011 23:02
Ошибка при загрузке изображения artemavd Общие вопросы Delphi 3 13.04.2010 16:41
ОШИБКА ПРИ ЗАГРУЗКЕ Костян Пират Операционные системы общие вопросы 5 21.02.2009 12:14
Ошибка при загрузке.... Ronni10 Операционные системы общие вопросы 6 10.01.2008 22:20