Практическое руководство. Создание эскизов изображений
Эскиз изображения — это сильно уменьшенный вариант изображения. Чтобы создать эскиз изображения, следует вызвать метод GetThumbnailImage объекта Image.
Пример
В следующем примере показано создание объекта Image из JPG-файла. Исходное изображение имеет ширину 640 точек и высоту 479 точек. Приведенный ниже код создает эскиз изображения, имеющий ширину 100 точек и высоту 100 точек.
Эскиз изображения показан на следующем рисунке.
Примечание
В этом пример объявляется метод обратного вызова, но он не используется.Это поддерживается всеми версиями GDI+.
Public Function ThumbnailCallback() As Boolean
Return True
End Function
Private Sub GetThumbnail(ByVal e As PaintEventArgs)
Dim callback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
Dim image As Image = New Bitmap("c:\FakePhoto.jpg")
Dim pThumbnail As Image = image.GetThumbnailImage(100, 100, callback, New IntPtr())
e.Graphics.DrawImage(pThumbnail, 10, 10, pThumbnail.Width, pThumbnail.Height)
End Sub
public bool ThumbnailCallback() {
return true;
}
private void GetThumbnail(PaintEventArgs e)
{
Image.GetThumbnailImageAbort callback =
new Image.GetThumbnailImageAbort(ThumbnailCallback);
Image image = new Bitmap(@"c:\FakePhoto.jpg");
Image pThumbnail = image.GetThumbnailImage(100, 100, callback, new
IntPtr());
e.Graphics.DrawImage(
pThumbnail,
10,
10,
pThumbnail.Width,
pThumbnail.Height);
}
Компиляция кода
Предыдущий пример предназначен для работы с Windows Forms, для него необходим объект PaintEventArgs e, передаваемый в качестве параметра обработчику события Paint. Чтобы выполнить пример, выполните следующие действия.
Создайте новое приложение Windows Forms.
Добавьте код примера в форму.
Создайте обработчик событий для события формы Paint.
В обработчике событий Paint вызовите метод GetThumbnail и передайте параметр e для PaintEventArgs.
Найдите файл изображения для которого нужно создать эскиз.
В методе GetThumbnail укажите путь и имя файла изображения.
Нажмите клавишу F5 для запуска примера.
В форме появится эскиз изображения размером 100х100.
См. также
Другие ресурсы
Работа с растровыми и векторными изображениями с использованием классов Image, Bitmap и Metafile