timage üzerinden resim kırpma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

timage üzerinden resim kırpma

Mesaj gönderen xozcanx »

viewtopic.php?f=2&t=19301&p=110769&hilit=invert#p110769

Merhaba,,
konuyu açmadan önce gerçekten araştırma yaptım ama sonuç alamadım evde internet olmadığı için Delphi "Türkiye Offline v4" indirdim orada çok araştırdım ama bulamadım gerçekten. yukarıdaki başlıktaki kodların invert kısmı hariç diğerleri işe yarıyor...

yapmak istediğim timage1 üzerinde gösterdiğim resim üzerinden seçili alanı timage2 ye aktarmak istiyorum örnek olarak şu şekilde

timage1 üzerinde kimlik fotokopisi olsun
bunun üzerinde ilk seçtiğim alan kimlik önyüzü bu alanı şeçtikten sonra Button1'e tıkladığımda timage2 ye aktarmak aynı şekilde arka yüzünü şeçtikten sonrada button2'ye tıklayınca timage3 te göstermek yukarıdaki başlığı inceledim buradaki kodlarla seçim alanını oluşturma işlemini yaptım ama diğer image'ye aktarmayı yapamadım.. şimdiden ilgilenen herkese teşekkürler...

Resim
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: timage üzerinden resim kırpma

Mesaj gönderen m_ekici »

Bu örnekte 2 adet image var. 1. resmin üzerinde yapılan seçimin içinde kalan resmi Image2 ye aktarıyor.

Kod: Tümünü seç

unit resim;

interface

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

type
  TForm5 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;
  x1, y1: integer;

implementation

{$R *.dfm}

procedure TForm5.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var bmp : TBitmap;
    jpg : TJpegImage;
begin
x1 := x;
y1 := y;
end;

procedure TForm5.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var i, j : integer;
  bmp1, bmp2 : TBitmap;
  Rect1: TRect;
  bWidth, bHeight: integer;
begin
with Rect1 do
  begin
  if x1 < x then
    begin
    Left := x1;
    Right := x;
    bWidth := x - x1;
    end
    else begin
         Left := x;
         Right := x1;
         bWidth := x1 - x;
         end;
  if y1 < y then
    begin
    Top := y1;
    Bottom := y;
    bHeight := y - y1;
    end
    else begin
         Top := y;
         Bottom := y1;
         bHeight := y1 - y;
         end;

  end;

bmp1 := TBitmap.Create;
bmp2 := TBitmap.Create;
bmp2.Width := bWidth;
bmp2.Height := bHeight;
  try
  bmp1.Assign(image1.Picture.Graphic);
  bmp2.Canvas.CopyRect(Rect(0, 0, bWidth, bHeight), bmp1.Canvas, Rect1);

  image2.Picture.Assign(bmp2); // IMAGE2 YE 1 DEN KESTİĞİN RESMİ AKTARIYOR.

  finally
  bmp1.Free;
  bmp2.Free;
  end;
end;

end.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: timage üzerinden resim kırpma

Mesaj gönderen xozcanx »

Merhaba, vermiş oldğunuz kodlar çalışıyor ama istediğim gibi düzenleme yapamadım. image1 üzerinde seçim alanını oluşturmak ve Kimlik ön dediğimde image2 ye aktarması bu işlemi hala yapabilmiş değilim. Birde şu olay dikkatimi çekti ilk verdiğim başlıkta bulunan kodlardaki işlem yapılan timage nesnesini panel üzerine yada herhangi bir nesne üzerine yerlertirdiğimde program derlendikten sonra seçim alanı gözükmüyor...
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: timage üzerinden resim kırpma

Mesaj gönderen xozcanx »

Merhaba tekrar yazmak zorunda kalıyorum ama bu işlemi hala gerçekleştiremedim.

Seçim alanı butonuna tıkladığımda alanın kordinatlarını alıyorum ama timage2 nesnesine seçili alanı tam olarak aktaramadım...

dosya bir örneği burada mevcut yardımlarınızı belliyorum...

http://www.dosya.tc/server14/t4Hi0p/canvas.rar.html
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Cevapla