![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Здравствуйте. Ситуация такая: обьявляю глобальную переменную TBitmap, как полагается создаю ее через Create, потом LoadFromFile из bmp-файла, потом на ее канве рисую разные вещи, потом вывожу ее на канву формы с помощью метода Draw.
Проблема вот в чем: если программе предлагается bmp-файл, созданный в "Пайнте" то все работает без всяких проблем. Если же файл создан в фотошопе (расширение то же самое - bmp, 24 бита, windows) то программа выдает ошибку "Stream read error" при попытке загрузить изображение из файла. Обьясните мне пожалуйста, почему так выходит? может надо что-то в код дописать для лучшей читаемости bmp или в фотошопе какую опцию сохранения включить? |
#2
|
|||
|
|||
![]() (предыдущее сообщение игнорируем...)
Если я напишу: var image:TBitmap; ... image:= TBitmap.Create; Image.LoadFromFile('moon.bmp'); ... То битмап где окажется, в озу(оперативной памяти) или в видео памяти? |
#3
|
|||
|
|||
![]() 1. В ОЗУ, кстественно.
2. По предыдущему вопросу. BMP - это общий формат (контейнер). Там может быть несколько внутренних форматов, какие-то из которых нативно могут и не поддержтваться. Напримет, маковский битмап. |
#4
|
||||
|
||||
![]() По поводу первого поста. Тоже с этим сталкивался. Взял отключил гдето флаг "сглаживание" (не при сохранении, вроде бы) и все заработало. А вообще я просто беру и ACDSee перевожу из BMP в BMP просто и все норм читается.
|
#5
|
|||
|
|||
![]() А как узнать цвет пикселя, допустим в точке (5,1) ?
|
#6
|
|||
|
|||
![]() Если считать один пиксел, то так: bmp.Canvas.Pixels[X,Y].
Если надо считывать всю картинку (для реализации граф. фильтра, например), то через ScanLine |
#7
|
|||
|
|||
![]() Цитата:
Попробуй так: var Col : TColor; X, Y : Integer; begin X:=1; Y:=5; Col := Image1.Canvas.Pixels[X, Y]; end; |