![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |