Skip to main content

Cara Memberikan Efek Mirror Pada Image Di Delphi

Untuk membuat efek mirror Anda dapat menggunakan fungsi StretchBlt. Fungsi StretchBlt digunakan untuk menyalin bitmap dari satu rectangle asal ke rectangle tujuan.

cara memberikan efek mirror pada image di delphi

Contoh aplikasi ini dapat digunakan untuk melakukan mirror vertikal dan horizontal. Tambahkan 2 komponen TImage dan TButton. Istilah property Picture dari Image1 dengan bitmap yang akan dimirror. Selanjutnya, buat prosedur untuk melakukan mirror vertikal dan horizontal seperti kode yang tertulis di bawah ini:

unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TForm5 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
    procedure VerticalMirror(Asal, Tujuan: TBitmap);
    procedure HorizontalMirror(Asal, Tujuan: TBitmap);

  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.VerticalMirror(Asal, Tujuan: TBitmap);
begin
  Tujuan.Assign(nil);
  Tujuan.Width:= Asal.Width;
  Tujuan.Height:= Asal.Height;
  StretchBlt(Tujuan.Canvas.Handle, 0, 0, Tujuan.Width, Tujuan.Height, Asal.Canvas.Handle,
    0, Asal.Height, Asal.Width, -Asal.Height, SRCCOPY);
end;

procedure TForm5.BitBtn1Click(Sender: TObject);
var
  Temp: TBitmap;
begin
  Temp:= TBitmap.Create;
  Temp.Assign(Image1.Picture.Bitmap);
  HorizontalMirror(Temp, Image2.Picture.Bitmap);
  Temp.Free;
end;

procedure TForm5.BitBtn2Click(Sender: TObject);
var
  Temp: TBitmap;
begin
  Temp:= TBitmap.Create;
  Temp.Assign(Image1.Picture.Bitmap);
  VerticalMirror(Temp, Image2.Picture.Bitmap);
  Temp.Free;
end;

procedure TForm5.HorizontalMirror(Asal, Tujuan: TBitmap);
begin
  Tujuan.Assign(nil);
  Tujuan.Width:= Asal.Width;
  Tujuan.Height:= Asal.Height;
  StretchBlt(Tujuan.Canvas.Handle, 0, 0, Tujuan.Width, Tujuan.Height, Asal.Canvas.Handle,
    Asal.Width, 0, -Asal.Width, Asal.Height, SRCCOPY);
end;

end.

Comments

Popular posts from this blog

Pengenalan Dasar Qlik Sense

Dewasa ini konsep penyajian data informasi banyak mengalami perubahan yang menggembirakan. Jika dahulu, konsep penyajian data adalah dalam bentuk larik-larik data berisi teks dan biasanya tidak dinamis dan tidak interaktif. Sekarang, seiring dengan pertumbuhan data informasi yang masif, dibutuhkan sebuah teknik penyajian data yang semakin sederhana namun memuat banyak informasi, tersaji secara dinamis dan interaktif, menjadikan pekerjaan analisis data lebih menyenangkan dari sebelumnya. Di sinilah konsep Business Intelligence berawal. Idenya adalah, saya sajikan kepada Anda begitu banyak informasi yang tentu saja yang Anda butuhkan, dalam format visual yang bersih, informatif, dinamis, dan interaktif dalam layar komputer Anda. Qlik Sense merupakan sebuah Aplikasi Reporting untuk keperluan Bussiness Intelligence. Merupakan pengembangan dari aplikasi BI pendahulunya yaitu QlikView . Qlik Sense pada dasarnya sama dengan QlikView . Hanya saja Qlik Sense lebih menekankan pada ide

Cara Membuat Dan Menggunakan Unit Di Delphi

Artikel ini adalah lanjutan dari artikel Bekerja Dengan Unit Di Delphi .  Untuk membuat unit baru, pilih menu File | New | Unit . Listing di bawah ini merupakan suatu contoh unit yang dibuat Delphi. unit Unit2; interface implementation end.

Cara Menggunakan DLL Di Delphi

Pada artikel sebelumnya kita telah membahas apa itu Dynamic Link Library dan bagaimana cara membuatnya di Delphi (baca: Mengenal Dynamic Link Library Di Delphi ). Kini Anda telah mengerti bagaimana cara membuat file DLL Anda sendiri. Permasalahan yang paling mendasar sekarang, mungkin adalah bagaimana cara menggunakan file DLL yang telah Anda buat pada aplikasi Anda dan mendapatkan keuntungan darinya. Terdapat dua cara penggunaan DLL, yakni Load-time dynamic lingking dan Run-time dynamic linking . Setelah membaca dan menerapkan contoh aplikasi sederhana dalam artikel ini, Anda akan dapat memahami perbedaan di antara kedua metode sehingga Anda dapat menentukan kapan menggunakan metode tersebut dan sebaliknya. Load-time Dynamic Linking (Cara Implisit) Jika Anda menggunakan cara ini, file DLL dimuat pada saat aplikasi dijalankan. Untuk melakukannya, Anda tinggal menulis prototype fungsi yang digunakan dengan tambahan pengarah eksternal. Sebagai contoh: function FungsiDLL(In