Arsip: D2009 Cut Picture JPEG format
more 15 years ago
artemisfowl
kakak2 yg udah berpengalaman di delphi mohon bantuannya.. Saya pake Delphi 2009, dah support JPG/JPEG n PNG kan ya.. :D Saya mau tanya, untuk file selain BMP, saya mau pindahin bagian dari picture dari TImage(Image1) ke TImage(Image2) yang lain.
Contoh saya load picture JPEG(800x600) ke Image1, saya ingin tampilin(cut) 25% picture(400x300), yaitu bagian kiri atas untuk di tampilin di Image2..
Saya udah coba cari di Google, yang ketemu nya harus di convert ke BMP dulu :( Semoga kakak2 bisa membantu.. :D
more 15 years ago
madi
Mungkin begini yak..:d
//This is how we can crop image by dragging mouse over the image
//This example needs Image (TImage) and Button (TButton)
//Drag your mouse over Image1 then click Button1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
PDown : TPoint;
PActually : TPoint;
MouseIsDown : Boolean;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
PDown := Point(x, y);
PActually := Point(x, y);
MouseIsDown := TRUE;
Image1.Canvas.DrawFocusRect(Rect(x, y, x, y));
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MouseIsDown then
begin
Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, PActually.x,PActually.y));
PActually := Point(x, y);
Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, x, y));
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, PActually.x, PActually.y));
Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, x, y));
PActually := Point(x, y);
MouseIsDown := FALSE;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
TmpBmp : TBitmap;
begin
Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, PActually.x, PActually.y));
TmpBmp := TBitmap.Create;
with TmpBmp do
try
Width := Round(abs(PActually.x - PDown.x));
Height := Round(abs(PActually.y - PDown.y));
BitBlt(Canvas.Handle, 0, 0, Width, Height, Image1.Canvas.Handle, PDown.x,
PDown.y, SRCCOPY);
Image1.AutoSize := TRUE;
Image1.Picture.Bitmap.Assign(TmpBmp);
finally
Free;
end;
end;
end.
more 15 years ago
madi
atau pake yg ini :d
procedure crop(bmp:TBitmap; dist:byte);
var bmpCrop: TBitmap;
begin
if dist2>=bmp.Width then
exit;
if dist 2>=bmp.Height then
exit;
bmpCrop:=TBitmap.Create;
try
bmpCrop.Assign(bmp);
bmpCrop.Canvas.CopyRect(Rect(0, 0, bmp.Width-2dist, bmp.Height-2 dist), bmpCrop.Canvas, Rect(dist, dist, bmp.Width-dist, bmp.Height-dist));
bmpCrop.Width:=bmp.Width-2dist;
bmpCrop.Height:=bmp.Height-2 dist;
bmp.Assign(bmpCrop);
finally
bmpCrop.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
crop(Image1.Picture.Bitmap, 5);
end;
more 15 years ago
artemisfowl
Eh.. kalau yang pake Rectangle gitu bukannya untuk Bitmap ya :?: (tolong koreksi kalau salah..)
Wah kak Madi, aku dah coba dua-dua nya ga bisa tuh, udah di coba belum coding nya ? untuk yg pertama, hanya bisa BMP, keluar rectangle nya tapi ga ngambil bagian yang ter-select rectangle. untuk yang kedua juga ga bisa..
Maaf nih kalau ada yg salah, maklum baru belajar dasar Delphi.. Apa caranya harus baca pixel ? kemudian pixel itu di copy terus taruh di container picture ? tapi kalau gitu bakal lama yak :lol: Lagi pula masih belum ngerti caranya... mohon bantuannya :)
more 15 years ago
artemisfowl
Kalau gitu saya pelajari dulu.. Kalau ada saran lainnya tolong post aja di sini.. makasih ya :)
more 15 years ago
artemisfowl
ada yg bisa kasih contoh coding sederhananya ga TGraphic - Draw, masih agak bingung nih..
more 15 years ago
pebbie
uses jpeg;
....
Image1.Picture.LoadFromFile('somefile.jpg');
...
bmp := TBitmap.Create;
bmp.Width := w;
bmp.Height := h;
bmp.Canvas.Draw(-x, -y, Image1.Picture.Graphic);//menggambar somefile.jpg, crop dari koordinat 5,5 sepanjang wxh pixel..
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Kopi Darat v2 (beta version) - rilis 5-juli-2009
by LuriDarmawan in Hal umum tentang Pascal Indonesia more 14 years ago - Tanya bikin interface 3D di delphi
by 113050251 in Hal umum tentang Pascal Indonesia more 16 years ago - tlg ksih tau cara save page delphi......
by neosite in Lain-lain more 12 years ago - Sory eror lagi ..
by Lembah_Tidar in Paradox more 16 years ago - tcard data dari query
by brodien in Tip n Trik Pemrograman more 18 years ago - copy file dengan parameter date modified
by jagur in Tip n Trik Pemrograman more 17 years ago - Tanya simpan data dari file text ke table
by donlego in Tutorial & Community Project more 17 years ago - interface port paralel
by anthadi in Tip n Trik Pemrograman more 15 years ago - [REQ] Report Builder
by sudadi in Reporting more 17 years ago - cari tutorial Quick Report
by budi_sleman in Tip n Trik Pemrograman more 14 years ago