Масштабирование для CanvasDelphi , Графика и Игры , CanvasМасштабирование для Canvas
Оформил: DeeCo procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer); var i: Integer; begin if AZoomFactor = 100 then SetMapMode(Canvas.Handle, MM_TEXT) else begin SetMapMode(Canvas.Handle, MM_ISOTROPIC); SetWindowExtEx(Canvas.Handle, AZoomFactor, AZoomFactor, nil); SetViewportExtEx(Canvas.Handle, 100, 100, nil); end; end; procedure TForm1.Button1Click(Sender: TObject); var bitmap: TBitmap; begin bitmap := TBitmap.Create; try bitmap.Assign(Form1.image1.Picture.Bitmap); SetCanvasZoomFactor(bitmap.Canvas, 70); Canvas.Draw(30, 30, bitmap); finally bitmap.Free end; end; Код предназначен для масштабирования канваса в Delphi для использования с компонентами TBitmap и TForm. Процедура Процедура проверяет, равен ли коэффициент масштабирования 100. Если это так, она устанавливает режим карты канваса в MM_TEXT. В противном случае она устанавливает режим карты в MM_ISOTROPIC и затем использует функции Вторая процедура, Схема работы кода следующая:
Пример использования кода:
В этом примере при клике кнопки на форме будет масштабироваться канвас до 70% и затем рисоваться масштабированный битмап на канвасе координатами (30, 30). Пример кода на Delphi, демонстрирующий масштабирование графики на canvas с помощью функции SetCanvasZoomFactor. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |