Paradox_JvDBImage ve jpeg kayıt
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Paradox_JvDBImage ve jpeg kayıt
Arkadaşlar Forumda arama yapmadan bu başlığı açmadım bunu belirterek soruma geçiyorum.
JEDi nin companettini indirdim çünkü bu konuda forumuda çok araştırdım veritabanına jpeg eklemek için herkez bunu öneriyor.
Bende veritabanıma jpeg resim eklemek istiyorum pardox veri tabanımda Resim adında OLE tanımlı bir alanım var JvDBImage DataSource yi alanımla ilişkilendirdim forumda yaptığım aramalardan bir çok kodu denedim neleri denediğimi buraya yazamıyorum jpeg ile ne gördüysem denedim
isteğim OpenPictureDialog la jpeg resimlerini görüp DataSource ile ilişkilendirdiğim JvDBImage almak ve table1.post; etmek bir türlü kayıt yapamadım.Lütfen bu konuda bilgisi olan arkadaş var ise JvDBImage ile ilgili tekrar bu bilgiyi paylaşabilirmi.
JEDi nin companettini indirdim çünkü bu konuda forumuda çok araştırdım veritabanına jpeg eklemek için herkez bunu öneriyor.
Bende veritabanıma jpeg resim eklemek istiyorum pardox veri tabanımda Resim adında OLE tanımlı bir alanım var JvDBImage DataSource yi alanımla ilişkilendirdim forumda yaptığım aramalardan bir çok kodu denedim neleri denediğimi buraya yazamıyorum jpeg ile ne gördüysem denedim
isteğim OpenPictureDialog la jpeg resimlerini görüp DataSource ile ilişkilendirdiğim JvDBImage almak ve table1.post; etmek bir türlü kayıt yapamadım.Lütfen bu konuda bilgisi olan arkadaş var ise JvDBImage ile ilgili tekrar bu bilgiyi paylaşabilirmi.
Selamlar,
Ben Jedi'lar ile çalışmadım normal Delphi'nin kendi (BDE) bileşenleri ile yapmıştım bir zamanlar. Orada JPEG veya BMP farketmez, Ctrl+Insert (Ctrl+C) ve Shit+Insert (Ctrl+V) kopyala yapıştır ile ilgili componente resimleri yapıştırıyordum. Open dialoglar ile kendim açıp, LoadFromFile methodları ile de resim yükleyip POST ile DB'ye gönderiyordum.
Sorun tam anlaşılamadı bence. Örneğinizi adım adım daha net yazarsanız yanıtlayan olacaktır.
Kolay Gelsin
Ben Jedi'lar ile çalışmadım normal Delphi'nin kendi (BDE) bileşenleri ile yapmıştım bir zamanlar. Orada JPEG veya BMP farketmez, Ctrl+Insert (Ctrl+C) ve Shit+Insert (Ctrl+V) kopyala yapıştır ile ilgili componente resimleri yapıştırıyordum. Open dialoglar ile kendim açıp, LoadFromFile methodları ile de resim yükleyip POST ile DB'ye gönderiyordum.
Sorun tam anlaşılamadı bence. Örneğinizi adım adım daha net yazarsanız yanıtlayan olacaktır.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
Sorun alanı ole olarak tanımlamanız. Blob olarak tanımlayınız.
Kod: Tümünü seç
IBDataSet.Edit;
OpenPictureDialog1.InitialDir:=MEResimYolu.Text;
if OpenPictureDialog1.Execute then
JvDBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
IBDataSet.Post;
selam Kuri_YJ
Sorum açık zannediyorum ama tekrar bir deneyeyim
veritabnıma jpeg resim eklemek istiyorum herkez biliyor delphi jpeg resimleri desteklemiyor bmp den başka bir şey tanımıyor.Bmp yi jpeg gibi gösteren kodlar var ama veri tabnına yine bmp olarak ekliyor jpeg görsede buda veri tabanını şişiriyor.Jpeg resimlere yok göstermeden kaydatmak istiyorum.Kayıt kodu arıyorum
Forumda bakarsanız jpeg resmi veri tabanına kayıt için JEDİ companetti öneriliyor.Bende JEDİ var ama jpeg resmi çağrıp veri tabanına nasıl kayıt edeceğimi bilmiyorum.örneğin yaptığım bir projede kullandığım bir kod var ama bu jpeg resimleri bmp gibi yüklüyor çünkü veri tabanı resim boyutlarına göre çok şişkin
var
jpg : TJPEGImage;
bmp : TBitmap;
ico : TIcon;
yol:AnsiString;
begin
OpenDialog1.Title:='Resim Seç';
OpenDialog1.Filter:='Jpg Dosyaları|*.jpg|ico Dosyaları|*.ico';
if OpenDialog1.Execute Then
begin
yol := OpenDialog1.FileName;
//eğer jpeg resim ise
if (ExtractFileExt(yol) = '.jpg') or (ExtractFileExt(yol) = '.jpeg') then
begin
try
jpg := TJPEGImage.Create;
jpg.LoadFromFile(yol);
bmp := TBitmap.Create;
bmp.Width := jpg.Width;
bmp.Height := jpg.Height;
bmp.Canvas.Draw(0,0,jpg);
Table1.edit;
DBImage1.Picture.Bitmap := bmp;
finally
jpg.Free;
bmp.Free;
end;
end;
if ExtractFileExt(yol) = '.ico' then
begin
ico := TIcon.Create;
ico.LoadFromFile(yol);
bmp := TBitmap.Create;
bmp.Width := ico.Width;
bmp.Height := ico.Height;
bmp.Canvas.Draw(0,0,ico);
Table1.Edit;
DBImage1.Picture.Bitmap := bmp;
Table1.Post;
ico.Free;
bmp.Free;
end;
Sorum açık zannediyorum ama tekrar bir deneyeyim
veritabnıma jpeg resim eklemek istiyorum herkez biliyor delphi jpeg resimleri desteklemiyor bmp den başka bir şey tanımıyor.Bmp yi jpeg gibi gösteren kodlar var ama veri tabnına yine bmp olarak ekliyor jpeg görsede buda veri tabanını şişiriyor.Jpeg resimlere yok göstermeden kaydatmak istiyorum.Kayıt kodu arıyorum
Forumda bakarsanız jpeg resmi veri tabanına kayıt için JEDİ companetti öneriliyor.Bende JEDİ var ama jpeg resmi çağrıp veri tabanına nasıl kayıt edeceğimi bilmiyorum.örneğin yaptığım bir projede kullandığım bir kod var ama bu jpeg resimleri bmp gibi yüklüyor çünkü veri tabanı resim boyutlarına göre çok şişkin
var
jpg : TJPEGImage;
bmp : TBitmap;
ico : TIcon;
yol:AnsiString;
begin
OpenDialog1.Title:='Resim Seç';
OpenDialog1.Filter:='Jpg Dosyaları|*.jpg|ico Dosyaları|*.ico';
if OpenDialog1.Execute Then
begin
yol := OpenDialog1.FileName;
//eğer jpeg resim ise
if (ExtractFileExt(yol) = '.jpg') or (ExtractFileExt(yol) = '.jpeg') then
begin
try
jpg := TJPEGImage.Create;
jpg.LoadFromFile(yol);
bmp := TBitmap.Create;
bmp.Width := jpg.Width;
bmp.Height := jpg.Height;
bmp.Canvas.Draw(0,0,jpg);
Table1.edit;
DBImage1.Picture.Bitmap := bmp;
finally
jpg.Free;
bmp.Free;
end;
end;
if ExtractFileExt(yol) = '.ico' then
begin
ico := TIcon.Create;
ico.LoadFromFile(yol);
bmp := TBitmap.Create;
bmp.Width := ico.Width;
bmp.Height := ico.Height;
bmp.Canvas.Draw(0,0,ico);
Table1.Edit;
DBImage1.Picture.Bitmap := bmp;
Table1.Post;
ico.Free;
bmp.Free;
end;
En son haydarxxx tarafından 08 Nis 2006 12:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
sy shadowmann
dediğiniz gibi alanı Blob bnary yaptım
IBDataSet.Edit; ıntarbase bağlantısı; satır hata verdi IBDataSet yerine table1.edit olur her halde onuda denedim bu sefer bir sonraki satır
OpenPictureDialog1.InitialDir:=MEResimYolu.Text; satırında Resim yolunu OpenPictureDialog1 kendisi otomatik açması gerekmezmi MEResimYolu.Text;
ne anlama geliyor çözemedim kısacası bunu kendime göre nasıl düzenlemeliyim
dediğiniz gibi alanı Blob bnary yaptım
IBDataSet.Edit; ıntarbase bağlantısı; satır hata verdi IBDataSet yerine table1.edit olur her halde onuda denedim bu sefer bir sonraki satır
OpenPictureDialog1.InitialDir:=MEResimYolu.Text; satırında Resim yolunu OpenPictureDialog1 kendisi otomatik açması gerekmezmi MEResimYolu.Text;
ne anlama geliyor çözemedim kısacası bunu kendime göre nasıl düzenlemeliyim
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
Hocam ibdataset firebird kullandığım içindi. Siz paradoxta tabii ki table.edit yapacaksınız. OpenPictureDialog1.InitialDir:=MEResimYolu.Text ben bunu open pic dialoga bir varsayılan yol vermek için kullanıyordum. İni den edite (meresimyolu) okuyordum. Yani sen orayı atla.
uses a Jpeg i eklemeyi de unutmayın.
Basitçe
Hepsi bu. Bmp kullanmayın veritabanında resim göstermek için. Ve resmin boyutunu da kendi jvdbimage ile aynı genişlik ve yükseklikte yapın. Yani her resim 15 kb olsa 1000 tane resim olsa fazla yer tutmaz. Ama bmp olursa veritabanın şişer.
uses a Jpeg i eklemeyi de unutmayın.
Basitçe
Kod: Tümünü seç
Table1.Edit;
if OpenPictureDialog1.Execute then
JvDBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
sy shadowmann
ilginiz için önclelikle teşekkür ediyorum.
bende zaten bmp den kaçmaya çalışıyorum
Table1.Edit;
if OpenPictureDialog1.Execute then
JvDBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
gösterdiğim resim jpeg ama
Bitmap image not valid. hatası alıyorum.
uses de
jpeg im var
..............
ben bir soru bankası oluşturmaya çalışıyorum veri tabanı için firebird mü Paradox mu öneririsiniz.Eğer firebird ise tabloda resim alanı Paradox taki Blob firebird de neye dek geliyor.
ilginiz için önclelikle teşekkür ediyorum.
bende zaten bmp den kaçmaya çalışıyorum
Table1.Edit;
if OpenPictureDialog1.Execute then
JvDBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
gösterdiğim resim jpeg ama
Bitmap image not valid. hatası alıyorum.
uses de
jpeg im var
..............
ben bir soru bankası oluşturmaya çalışıyorum veri tabanı için firebird mü Paradox mu öneririsiniz.Eğer firebird ise tabloda resim alanı Paradox taki Blob firebird de neye dek geliyor.
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
Tabii ki firebird. Bu konuda forumda gerekli ve yeterli bilgi var.
Bmpleri önce jpg e çevirin sonra db ye gönderin.
Google gruplardan (Arama bmp+jpeg+convert+delphi) kopyala yapıştır yaptım. Belki forumda da vardır.
Bmpleri önce jpg e çevirin sonra db ye gönderin.
Google gruplardan (Arama bmp+jpeg+convert+delphi) kopyala yapıştır yaptım. Belki forumda da vardır.
Kod: Tümünü seç
// BMP to JPG
procedure TForm1.Button1Click(Sender: TObject);
VAR
JPEG : TJPEGImage;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
TRY
Bitmap.LoadFromFile('Chipmonk.BMP');
JPEG := TJPEGImage.Create;
TRY
JPEG.Assign(Bitmap);
JPEG.SaveToFile('Chipmonk.JPG');
Image1.Picture.Graphic := JPEG
FINALLY
JPEG.Free
END
FINALLY
Bitmap.Free
END
end;
// JPG to BMP
procedure TForm1.Button2Click(Sender: TObject);
VAR
JPEG : TJPEGImage;
Bitmap: TBitmap;
begin
JPEG := TJPEGImage.Create;
TRY
JPEG.LoadFromFile('Chipmonk.JPG');
Bitmap := TBitmap.Create;
TRY
Bitmap.Assign(JPEG);
Bitmap.SaveToFile('Chipmonk.BMP');
Image2.Picture.Graphic := Bitmap
FINALLY
Bitmap.Free
END
FINALLY
JPEG.Free
END
end;
denedim ama yapamdım
firebird de geçtim ordada benzer sıkıntılar yaşıyorum
// Blob içeriğini yükle
if opdPictureOpen.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
jdiPhoto.Picture.LoadFromFile(opdPictureOpen.FileName);
denedim bitmap image is not valid. hatası alıyorum.
firebird de geçtim ordada benzer sıkıntılar yaşıyorum
// Blob içeriğini yükle
if opdPictureOpen.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
jdiPhoto.Picture.LoadFromFile(opdPictureOpen.FileName);
denedim bitmap image is not valid. hatası alıyorum.
evet var heskin35
// Blob içeriğini yükle
if opdPictureOpen.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
jdiPhoto.Picture.LoadFromFile(opdPictureOpen.FileName);
gerçi ben bunun yerine kodu böyle kullandım (kodu forumdan almıştım)
çünkü jdiPhoto bulamadım sekmeler içinde
if OpenPictureDialog1.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
JvDBImage1.Picture.LoadFromFile( OpenPictureDialog1.FileName);
// Blob içeriğini yükle
if opdPictureOpen.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
jdiPhoto.Picture.LoadFromFile(opdPictureOpen.FileName);
gerçi ben bunun yerine kodu böyle kullandım (kodu forumdan almıştım)
çünkü jdiPhoto bulamadım sekmeler içinde
if OpenPictureDialog1.Execute then // Resmi seçtiğimiz dialog kutusunu açar
// Seçilen JPEG dosya Jedi'in DBImage'ine bu yöntemle aktarılır.
JvDBImage1.Picture.LoadFromFile( OpenPictureDialog1.FileName);
Slm. Ben Jpeg'i Böyle Kaydediyorum,hiç Problem yaşamıyorum.
Uses'e "jpeg;" ekle
Kaydetmek için de Bir Button'a;
Veritabanına Tüm Bilgilerle beraber bu şekilde kaydediyorum.
Uses'e "jpeg;" ekle
Kod: Tümünü seç
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
IBDataSet1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;
Kod: Tümünü seç
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if IBDataSet1.State in [dsInsert, dsEdit] then
IBDataSet1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;
sy HBV
yaptığım işler sıra ile
*table1.Append;
*procedure TForm1.DBImage1Click(Sender: TObject);
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;
*procedure TForm1.Button2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if table1.State in [dsInsert, dsEdit] then
table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;
diyorum Bitmap image is not valid.hatası veriyor.
uses te jpeg tanımlı tablodaki resim alanım Blob
yaptığım işler sıra ile
*table1.Append;
*procedure TForm1.DBImage1Click(Sender: TObject);
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
end;
*procedure TForm1.Button2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if table1.State in [dsInsert, dsEdit] then
table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;
diyorum Bitmap image is not valid.hatası veriyor.
uses te jpeg tanımlı tablodaki resim alanım Blob
Slm.Veritabanına Daha Önce kaydettiğiniz Resimleri sıfırlayın veya silin sıfırdan kaydedin düzelecektir.Çünkü daha önce DBImage'ile(?) Bmp kayıt yaptığınız için JvDBImage tanımlamıyor..bendede aynı hata vardı tüm resimleri sıfırlayıp yeniden kayıt yaptım düzeldi.
(Paradox,Resim alanı için "OLE" seçili olacak)
*table1.Append;
*procedure TForm1.DBImage1Click(Sender: TObject);//Burada bir hata var ..Niye DBImage? ..>>>"JvDBImage1Click" Olması lazım,Resimlerinizi daha Önce DBImageyle kaydetmişsiniz.......
{Tavsiyem Firebird Kullan}
(Paradox,Resim alanı için "OLE" seçili olacak)
*table1.Append;
*procedure TForm1.DBImage1Click(Sender: TObject);//Burada bir hata var ..Niye DBImage? ..>>>"JvDBImage1Click" Olması lazım,Resimlerinizi daha Önce DBImageyle kaydetmişsiniz.......
{Tavsiyem Firebird Kullan}
HBV.
tablodan resim alanlarını kaldırdım yeniden ole yaptım(RESİMLERİ TEMİZLEDİM).Fakat
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
ile resmi alıyorum jpeg resim geliyor
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
table1.Post;
end;
yaptığımda alpha alanlarını kaydediyor ama resim alanını boş gösteriyor bir hata vermiyor ama resmi de kaydetmiyor.Kayıt gezintisi yaptığımda resim alanları boş çıkıyor.
yine sizin verdiğiniz kaydet butonu ile işlem yaptığımda
procedure TForm1.Button2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if table1.State in [dsInsert, dsEdit] then
table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;
Bitmap image is not valid.hatası alıyorum va hatta projeyi kitliyor.Tavsiyenize çoktan uydum bir koldanda firebird de deneyecceğim ama firebird de çok yeniyim.Forumdan araştırma ve inceleme aşamasındayım.umarım orda becerbilirim.
tablodan resim alanlarını kaldırdım yeniden ole yaptım(RESİMLERİ TEMİZLEDİM).Fakat
var
yol:AnsiString;
begin
OpenPictureDialog1.Title:='Resim Seç';
OpenPictureDialog1.Filter:='JPEG Dosyalari|*.jpg|ico Dosyalari|*.ico|Bmp Dosyalari|*.bmp';
if OpenPictureDialog1.Execute Then
begin
yol:=OpenPictureDialog1.FileName;
table1.Edit;//değişme moduna al
JvDBImage1.Picture.LoadFromFile(yol);
end;
ile resmi alıyorum jpeg resim geliyor
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
table1.Post;
end;
yaptığımda alpha alanlarını kaydediyor ama resim alanını boş gösteriyor bir hata vermiyor ama resmi de kaydetmiyor.Kayıt gezintisi yaptığımda resim alanları boş çıkıyor.
yine sizin verdiğiniz kaydet butonu ile işlem yaptığımda
procedure TForm1.Button2Click(Sender: TObject);
var
deg:integer;
begin
deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if deg=mrYes Then
begin
if table1.State in [dsInsert, dsEdit] then
table1.Post;
ShowMessage('KART KAYDEDiLDi');
end
else
ShowMessage('KAYIT iSLEMi iPTAL');
end;
Bitmap image is not valid.hatası alıyorum va hatta projeyi kitliyor.Tavsiyenize çoktan uydum bir koldanda firebird de deneyecceğim ama firebird de çok yeniyim.Forumdan araştırma ve inceleme aşamasındayım.umarım orda becerbilirim.