PDA

View Full Version : مشکل در نمایش فیلد تصویر درون DBImage



babila
دوشنبه 20 تیر 1384, 00:39 صبح
من وقتی داخل یک DBImage می خواهم تصویر رانمایش دهم ارور زیر نمایان میشود
Bitmap Image is not valid
حتی وقتی از دیتابیس مثال خود اکسس نیز استفاده می کنم باز همین ارور رو میده
لازم به توضیح است که از Access و ADO استفاده میکنم
در صورت امکان راهنمائی کنید.
متشکرم

hadavinia
دوشنبه 20 تیر 1384, 05:26 صبح
فکر می کنم شما برای این کار باید دیتابیس را از تصویر خالی نمایید
بعد دیتابیس را توسط دلفی باز نمایید ویک dbimage قرار دهید تصویر را در پینت کپی
و در db image با استفاده از ctrl+v پیست نمایید

دنیای دلفی
دوشنبه 20 تیر 1384, 12:16 عصر
ابتدا مطمئن بشوید که فایل تصویر شما باید BITMAP باشد و اگر نیست باید آن را به BITMAP تبدیل کنید
یا اینکه از کامپوننت ImageEn استفاده کنید

dadvand
سه شنبه 21 تیر 1384, 10:42 صبح
تصویری که در دیتابیس شما هست از نوع bitmap باید باشد .

Touska
سه شنبه 21 تیر 1384, 11:19 صبح
اگر تصویر شما چیزی غیر از Bitmap است به روش دیگری باید آن را ذخیره کنید.

موفق باشید

m-khorsandi
سه شنبه 21 تیر 1384, 15:39 عصر
اگه میخواهید برنامه تون توانایی ذخیره و نمایش تمام فایلهای گرافیکی (*) رو داشته
باشه پیشنهاد میکنم هم نحوه ذخیره و نمایشتون و هم Component هاتون رو عوض کنید.

ali_abbasi22145
چهارشنبه 22 تیر 1384, 08:39 صبح
سلام

Imageen استفاده کن این ایرادها را ندارد و تقریبا همه فرمتهای تصویری را می گیرد

prog_2005
یک شنبه 26 تیر 1384, 08:57 صبح
به dbimage از image استفاده کن و اسم اونو بزار adoimage ومراحل زیر را انجام بده
const
jpegstarts='FFD8';
bmpstsrts='424D';
var
bs :TADOBlobStream;
buffer:word;
hx:string;
sdbpath:string;
fs:TFileStream;
pic:TJPEGImage;

function jpegstartsinblob(picfield:tblobfield):integer;

var
bs :TADOBlobStream;
buffer:word;
hx:string;
begin
result:=-1;
bs:=TADOBlobStream.Create(picfield,bmread);
try
while(result=-1) and (bs.position+1<bs.size)do
begin
bs.readbuffer(buffer,1);
hx:=inttohex(buffer,2);
if hx='FF'then begin
bs.readbuffer(buffer,1);
hx:=inttohex(buffer,2);
if hx='D8'then result:=bs.position-2
else if hx='FF' then
bs.position:=bs.position-1;
end;
end;
finally
bs.free;
end;
end;
برای ذخیره کردن تصویرکد زیر را بنویس
spicpath:='pic\1.jpg';

fs:=TFileStream.Create(spicpath,fmopenread);

try

adotable3pic.LoadFromStream(fs);
adotable3.Post;
finally
fs.free;
end;
این کد هم برای نمایش تصویر استفاده کن
bs:=TADOBlobStream.Create(ADOTable3pic,bmRead);
try
bs.Seek(jpegstartsinblob(ADOTable3pic),sofrombegin ning);
pic:=TJPEGImage.Create;
try
pic.LoadFromStream(bs);
adoimage.Picture.Graphic:=pic;
finally
pic.Free
end;
finally
bs.Free;
end;

pedar47
جمعه 08 شهریور 1392, 04:21 صبح
سلام
من یه مشکل دارم
با نرم افزار longtion application builder وقتی میخام یک dbimage بذارم میگه Bitmap Image is not valid در حالی که عکسم فرمتش bitmape
لطفا کمکم کنید نیاز دارم