Шаг 182 - DrawImage и масштабирование

В шаге "Шаг 180 - Коллекция изображений" мы с Вами использовали функцию DrawImage в формате:

public void DrawImage(Image, Point);

Но вариантов ее использования много. Второй ее формат

public void DrawImage(Image, Rectangle);

Позволяет отображать ее в некотором прямоугольнике, соответственно данный трюк можно использовать для масштабирование изображения. Смотрим пример.

using System;
using System.Windows.Forms;
using System.Collections;
using System.Drawing;

class MainForm : Form
{
	public MainForm()
	{
		Text = "This is my form";
		myArray = new ArrayList();
		myArray.Add(Image.FromFile("D:\\net_step\\1\\Watch.jpg"));
		
	}
	
	protected override void OnPaint(PaintEventArgs pe) 
	{
		Graphics g = pe.Graphics;
		foreach (Image i in myArray)
		{
			g.DrawImage(i,new Rectangle(1,1,10+x,10+x));				
		}
	}

	protected override void OnMouseDown(MouseEventArgs e) 
	{
		if (e.Button==MouseButtons.Left)
		{
			x=x+50;
		}
		else
		{
			if (x>0) x=x-50;
		}
		this.Invalidate();
	}

	public static void Main(string[] args)
	{
		Application.Run(new MainForm());
	}
	
	static int x;
	ArrayList myArray;
}

По нажатию левой кнопки масштаб увеличиваем, по нажатию правой уменьшаем. В прилагаемом проекте Вы можете испытать это способ. Данная картинка очень сильно масштабирована.

gif/182_1.gif (12197 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 03.11.2001