Resim daha önceden kayit edilmis mi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Resim daha önceden kayit edilmis mi?

Mesaj gönderen ikra »

Firebird Veritabaninda tuttugum resimler var.
Kullanici yeni bir fotograf eklemek istediginde, bu fotograf daha önceden eklenmis mi konrolü yaptirabilir miyim?
Bunun basit, kullanisli ve hizli bir yöntemi var mi?
kıdemsiz üye
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Resim daha önceden kayit edilmis mi?

Mesaj gönderen Battosai »

İki resmi karşılaştırıyor aşağıdaki kod bunu bir fonksiyon haline getirip gerekli kontrolü yaptırabilirsin....diffrent değişkeni sıfırdan(0) dan büyükse resim farklıdır...

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  b1, b2: TBitmap;
  c1, c2: PByte;
  x, y, i,
  different: Integer; // Counter for different pixels
begin
  b1 := Image1.Picture.Bitmap;
  b2 := Image2.Picture.Bitmap;
  Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal
  different := 0;
  for y := 0 to b1.Height - 1 do
  begin
    c1 := b1.Scanline[y];
    c2 := b2.Scanline[y];
    for x := 0 to b1.Width - 1 do
      for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat
      begin
        Inc(different, Integer(c1^ <> c2^));
        Inc(c1);
        Inc(c2);
      end;
  end;
end;
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Resim daha önceden kayit edilmis mi?

Mesaj gönderen ikra »

hocam tessekkür ederim. ellerine saglik.

kodu müsait oldugum an deneyecegim insaAllah. ufd haline getirip server tarafinda isi hallederim.
peki bu koda güvenebilirmiyim? yani sonuc yüzde yüz mü dür? hata olasiligi olabilir mi?
kıdemsiz üye
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Resim daha önceden kayit edilmis mi?

Mesaj gönderen Battosai »

ikra yazdı: peki bu koda güvenebilirmiyim? yani sonuc yüzde yüz mü dür? hata olasiligi olabilir mi?
Bende google araması ile kodu buldum:) denemek lazım...Birde blop alan için veritabanında unique index tanımlıyor mu bi dene derim...gerisi kolay veritabanı hatasına göre işlemini gerçekleştirebilirsin...
Cevapla