![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте. 
		
	
		
		
		
		
		
	
		
		
	
	
	Может есть у кого исходники программки, которая бы загружала любое изображение (формата BMP например) и позволяла масштабировать его. То есть, надо всего 3 кнопки: "+" - для увеличения фрагмента изображения, "-" - для уменьшения и "Полный размер" - чтобы вся картинка видна была.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Brute Force 
		
	
		
		
		
		
		
	
		
		
	
	
	Юзай TImage. Только stretch включить не забудь.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 а в GDI+ есть какаянить одна функция масштабирования? мне тож надо) 
		
	
		
		
		
		
		
		
			Последний раз редактировалось Гудвин, 21.03.2008 в 22:00.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вот, например, есть на форме TImage размером 100х100, в него картинка грузится 500х500 и Stretch=True. При клике на картинку надо, не меняя размеров TImage, показать ее в реальном разрешении, чтобы место клика на катртинке совпадало с центром TImage (по краям она, понятно, обрежется). Может кто-нибудь такой код привести? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Свойство Center 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Да, я только не понял, как мне в этот Center указанную точку изображения привести? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Brute Force И не стыдно тебе такие глупые вопросы задавать. Ну, уж напряги свой мозг, подумай как прямоугольник отцентрировать(зная его высоту, ширину и координаты верхнего левого угла). 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Вобщем это выглядит примерно так : procedure TForm1.Button1Click(Sender: TObject); begin BitMap1 := TBitMap.Create; try BitMap1.LoadFromFile('C:\1.bmp'); // здесь указывай свой ...\*.bmp Canvas.Draw(0,0,BitMap1); BitMap1.Height:= form1.Height; BitMap1.Width:= form1.Width; finally BitMap1.Free; end;  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 В общем это выглядит примерно так : procedure TForm1.Button1Click(Sender: TObject); var BitMap1 : TBitMap; begin BitMap1 := TBitMap.Create; try BitMap1.LoadFromFile('C:\1.bmp'); // здесь указывай свой ...\*.bmp Canvas.Draw(0,0,BitMap1); BitMap1.Height:= form1.Height; BitMap1.Width:= form1.Width; finally BitMap1.Free; end; Последний раз редактировалось Smirnov Ivan, 24.03.2008 в 00:18.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Smirnov Ivan 
		
	
		
		
		
		
		
	
		
		
	
	
	Цитата: 
	
 ![]() Ты не в теме, дай челу подумать.  | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Сам ты мозг! До сих пор ни строчки кода не привел, только ругаешься на всех!  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Пока придумалось только делать невизуальный компонент TBitmap в полный размер картинки и копировать с него на TImage разные части изображения в зависимости от координат TImage, куда пользователь нажал и от того увеличить надо масштаб или уменьшить. 
		
	
		
		
		
		
		
	
		
		
	
	
	Вот если бы кто теперь написал пример функции, которая может из TBitmap скопировать в TImage прямоугольник с размерами TImage...  | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 у имэйджа свойство стретч / центр в тру а VertScrollBar.Visible / HorzScrollBar.Visible в фэлсэ а потом свойствами left top width height манипулируешь, мож к примеру им значение меньше нуля присвоить, вдруг получицо?  эт самый простой способ. а для разнообразия можно переменную булевую завести и при перемещении мыши когда левая клавиша зажата, перемещать и картинку чтоб эффект как в просмотре изображений получить.  
		
	
		
		
		
		
		
		
			если же копировать рект из битмапа то это функцией canvas.CopyRect Последний раз редактировалось Гудвин, 25.03.2008 в 02:45.  | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Ты думаешь, ты самый умный? Если так, то почему сам не поможешь? Или есть проблемы? //Это форум для начинающих и тех кто хочет им помочь, а не для начинающих и тех кто хочет над ними посмеяться ------------------------------------ Да, я ошибся( {спешил} BitMap1.Height:=form1.Height; BitMap1.Width:=form1.Width; Вот исправленный вариант: form1.Height:=BitMap1.Height; form1.Width:=BitMap1.Width;  |