AMELIYA PUSPA NINGRUM


Lakukan Yang Terbaik Hari Ini

FLIP REVERSE ROTATE

Dengan program delphi kita bisa membuat program yang kita inginkan, salah satunya adalah kita dapat membuat program flip reverse rotate. Program flip reverse rotate digunakan untuk mengedit gambar memutar dan membalikkan gambar sesuai yang kita inginkan. Pertama komponen-komponen/ icon-icon yang ada pada form yang kita butuhkan untuk membuat program ini:

Setelah kita membuat form seperti diatas berikut adalah source code untuk program FLIP REVERSE ROTATE:

 


 

// Flip Reverse Rotate adalah sebuah program untuk memutar dan

//membalik sebuah objek (gambar)

unit ScreenFlipReverseRotate;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls, ExtDlgs, ExtCtrls;

 

// di type merupakan list dari icon yang di pakai

type

  TFormFlipReverseRotate = class(TForm)

    ImageOriginal: TImage;

    ImageModified: TImage;

    OpenPictureDialogBMP: TOpenPictureDialog;

    CheckBoxStretch: TCheckBox;

    ButtonLoad: TButton;

    CheckBoxFlip: TCheckBox;

    CheckBoxReverse: TCheckBox;

    RadioGroupMethod: TRadioGroup;

    LabelTimer: TLabel;

    ButtonSave: TButton;

    RadioGroupRotate: TRadioGroup;

    SavePictureDialogBMP: TSavePictureDialog;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure CheckBoxStretchClick(Sender: TObject);

    procedure ButtonLoadClick(Sender: TObject);

    procedure CheckBoxClickModifyImage(Sender: TObject);

    procedure RadioGroupRotateClick(Sender: TObject);

    procedure ButtonSaveClick(Sender: TObject);

  private

    BitmapOriginal   :  TBitmap;

 

    PROCEDURE ModifyOriginalImage;

 

  public

    { Public declarations }

  end;

 

//Dalam program ini, berikut adalah variabel yang akan dipakai

var

  FormFlipReverseRotate: TFormFlipReverseRotate;

 

implementation

{$R *.DFM}

 

  USES

    FlipReverseRotateLibrary;

 

procedure TFormFlipReverseRotate.FormCreate(Sender: TObject);

begin

//Pengaturan BitmapOriginal dalam kasus memutar / Terbalik gambar

//digunakan sebelum Gambar dimuat.

  BitmapOriginal := TBitmap.Create;

  BitmapOriginal.Width := ImageOriginal.Width;

  BitmapOriginal.Height := ImageOriginal.Height;

  BitmapOriginal.PixelFormat := pf24bit

end;

 

 

procedure TFormFlipReverseRotate.FormDestroy(Sender: TObject);

begin

  BitmapOriginal.Free

end;

 

// untuk memberi identitas pada gambar yang nantinya akan ada pada TImage

procedure TFormFlipReverseRotate.CheckBoxStretchClick(Sender: TObject);

begin

  ImageOriginal.Stretch := CheckboxStretch.Checked;

  ImageModified.Stretch := CheckboxStretch.Checked

end;

 

// Button ini digunakan untuk memasukkan gambar yang ingin kita edit

// Pada button ini kita dapat memilih gambar pada folder yang kita inginkan

procedure TFormFlipReverseRotate.ButtonLoadClick(Sender: TObject);

begin

  IF  OpenPictureDialogBMP.Execute

  THEN BEGIN

    BitmapOriginal.Free;

 

    // mesasukkan gambar yang asli pada Bitmaporiginal

    BitmapOriginal := TBitmap.Create;

    BitmapOriginal.LoadFromFile(OpenPictureDialogBMP.Filename);

 

    // memilih TBitmap ke TImage untuk ditampilkan

    ImageOriginal.Picture.Graphic := BitmapOriginal;

 

    IF   BitmapOriginal.PixelFormat = pf24bit

    THEN BEGIN

      RadioGroupMethod.ItemIndex := 0;

      RadioGroupMethod.Enabled := TRUE

    END

    ELSE BEGIN

      RadioGroupMethod.ItemIndex := 1;

 

 

      RadioGroupMethod.Enabled := FALSE

    END;

 

    ModifyOriginalImage;

    ButtonSave.Enabled := TRUE

  END

end;

 

 

procedure TFormFlipReverseRotate.CheckBoxClickModifyImage(Sender: TObject);

begin

  IF   RadioGroupMethod.ItemIndex = 0

  THEN RadioGroupRotate.Visible := TRUE

  ELSE BEGIN

    RadioGroupRotate.ItemIndex := 0;

    RadioGroupRotate.Visible := FALSE

  END;

 

  ModifyOriginalImage

end;

 

 

PROCEDURE TFormFlipReverseRotate.ModifyOriginalImage;

//Membuat TRadioGroup menjadi dua Kelompok

//Dari TRadioGrop akan ada Scanline, Copy Rect atau StretchBlt

// Dan juga Flip atau Reverse bitmap.

  VAR

    BitmapFlipReverse:  TBitmap;

    BitmapRotate     :  TBitmap;

    StartTick        :  INTEGER;

BEGIN

  StartTick := GetTickCount;

 

  // Pada TRadioGroup terdapat RadioGroupMethod yang akan ada

  // Scanline, Copy Rect atau StretchBlt

  CASE RadioGroupMethod.ItemIndex OF

    0:  BitmapFlipReverse := FlipReverseScanLine( CheckBoxFlip.Checked,

                                                  CheckBoxReverse.Checked,

                                                  BitmapOriginal);

 

    1:  BitmapFlipReverse := FlipReverseCopyRect( CheckBoxFlip.Checked,

                                                  CheckBoxReverse.Checked,

                                                  BitmapOriginal);

 

    2:  BitmapFlipReverse := FlipReverseStretchBlt(CheckBoxFlip.Checked,

                                                   CheckBoxReverse.Checked,

                                                   BitmapOriginal);

    ELSE

      BitmapFlipReverse := NIL

  END;

 

  IF   RadioGroupRotate.Visible

 

  // Pada TRadioGroup terdapat pilihan untuk rotate gambar

  // Dengan pilihan rotatenya adalah 0, 90, 180, 270 derajat dari gambar aslinya

  THEN BEGIN

    BitmapRotate := RotateScanLine90(90*RadioGroupRotate.ItemIndex,

                                     BitmapFlipReverse);

    ImageModified.Picture.Graphic := BitmapRotate;

    BitmapRotate.Free

  END

  ELSE ImageModified.Picture.Graphic := BitmapFlipReverse;

 

  LabelTimer.Caption := IntToStr(GetTickCount - StartTick) + ' ms'

END {ModifyOriginalImage};

 

// Perintah untuk memutar gambar

procedure TFormFlipReverseRotate.RadioGroupRotateClick(Sender: TObject);

begin

  ModifyOriginalImage

end;

 

//Perintah untuk membalikkan gambar

procedure TFormFlipReverseRotate.ButtonSaveClick(Sender: TObject);

begin

  IF   SavePictureDialogBMP.Execute

  THEN ImageModified.Picture.Bitmap.SaveToFile(SavePictureDialogBMP.Filename)

end;

 

end.

 


 

Berikut ini adalah hasil dari program setelah di run:

1. Hasil dari kita tidak melakukan rotate (0) :

2.  Hasil dari kita melakukan rotate 90 derajat dari gambar asli

3. Hasil dari kita melakukan rotate 180 derajat dari gambar asli

4. Hasil dari kita melakukan rotate 270 derajat dari gambar asli

5. Hasil dari kita melakukan flip pada gambar

6. Hasil dari kita melakukan flip dan reverse pada gambar

7. Hasil dari kita melakukan reverse pada gambar

Terima kasih, semoga bermanfaat

Tinggalkan Komentar

Nama :
E-mail :
Web : tanpa http://
Komentar :
Verification Code :   ">