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