![]() |
![]() ![]() ![]() ![]() |
|
Масштабирование для 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 прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||