Мне как то нужно было сохранить "Кусочек" из огромной картинки, и мне пришлось ознакомится с Canvas и обнаружилось много функции по этому случаю, но мне понравилось вот эта реализация.
Код очень быстрый и легкий. Начнем.
Подготовка:
На форму кинуть два Image и кнопка. Первый Image назвать "Source", второй Image "Dest". Кнопку Button назвать "Go".
Кодинг:
На кнопке в событии OnClick пишем
var bitm: TBitmap;
begin
bitm:= TBitmap.Create; // создание изображения
bitm.LoadFromFile('C:\1.bmp'); // загружаем любую картинку
Source.Canvas.Draw(0, 0, bitm); // показываем что загрузили
// здесь идет копирование и вывод скопированного на Dest
Dest.Canvas.CopyRect(Rect(0, 0, 50, 50), bitm.Canvas, Rect(0, 0, 50, 50));
bitm.Free; // освобождение
end;
При помощи этой функции (CopyRect) можно увеличить определенный "Кусочек".
просто нужно чуть видоизменить строчку:
Dest.Canvas.CopyRect(Rect(0, 0, 150, 150), bitm.Canvas, Rect(0, 0, 50, 50));
Также можно сохранить полученный "Кусочек", добавив в код строчку после копирования
Dest.Picture.SaveToFile('C:\2.bmp');
На этом всё! Удачи!
Просмотров: 5776
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.