![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Bitmap.LoadFromStream для bmp, сделанных в разных программах
Ал © (2003-11-14 11:28:00)Никто не встречался с таким эффектом:
Делаю в PhotoShop5.5 несколько 256-цветных bmp. Затем с помощью Stream записываю их в один файл (делаю библиотеку).
Когда читаю с помощью Bitmap.LoadFromStream, возникает интересный эффект:
- если картинки делались в PhotoShop, то при чтении из Stream они читаются правильно, НО после чтения каждой картинки нужно на 2 байта передвигать указатель вперед - иначе следующий прочитается с ошибкой;
- если картинки делались в Paint, то картинки читаются, передвигать указатель не нужно, а вот с последней картинкой бывают проблемы (если после нее еще что-то есть в Stream, напр., массив строк, то картинка может прочитаться с ошибкой).
В VCL не экспериментировал.
Есть какие-нибудь идеи?
SPeller (2003-11-14 15:14:00) [1]А какая разница, что там фотошоп пишет? В заголовке файла всё-равно указывается размер, и фотошоповкий файл в заголовке имеет длину на 2 больше чем, например, из paint'а. Ты и у себя в библиотеке тоже записывай длину данных и ориентируйся по ней.
SAGE (2003-11-14 12:49:00) [2]Такой эффект я замечал еще с PhotoShop3.
Он помоему всегда добавлял два абсолютно лишних байта к каждому файлу :)
Для себя я когда-то еще в далеком 1998 на TP написал утилитку, что-то вроде BMP-оптимизатора.
Например картинка содержит десяток цветов, а сохранена как Truecolor. После оптимизации такой битмап становится меньше как минимум в 4 или 8 раз!!! А если в картинке 2 цвета, то и во все 32 раза, причем наблюдается интересный эффект - получается двухцветная (не черно-белая) картинка, чего я не встречал еще ни в одном редакторе!!!
Понятное дело часть ненужных цветов в палитре (в случае 16-ти и 256-ти цветов) теряется.
Я вообще ни один битмап не добавляю к проектам предварительно не оптимизировав.