PDA

View Full Version : مشكل در لود كردن يك عكس با حجم بالا



Kamyar.Kimiyabeigi
چهارشنبه 25 دی 1387, 11:16 صبح
من بوسيله كد زير ميخوام عكسها رو لود كنم و نمايش بدم.


procedure TForm1.Button3Click(Sender: TObject);
var
OleGraphic: TOleGraphic;
fs: TFileStream;
begin
try
OleGraphic := TOleGraphic.Create;
OpenDialog1.Execute;
fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmSharedenyNone);
OleGraphic.LoadFromStream(fs);
Image1.Picture.Assign(OleGraphic);
finally
fs.Free;
OleGraphic.Free
end;
end;

كدم مشكلي نداره و درست كار ميكنه اما وقتي ميخوام يك عكس با حجم 140 mb رو لود كنم error زير رو بهم ميده


Not enough storage is available to process this command

ممنون

vcldeveloper
چهارشنبه 25 دی 1387, 12:31 عصر
وقتی بجای LoadFromStream از LoadFromFile هم استفاده می کنید، همین پیغام را میده؟

Kamyar.Kimiyabeigi
چهارشنبه 25 دی 1387, 13:39 عصر
جناب كشاورز كد زير روي عكس با حجم زياد error نميده ولي عكس رو نمايش نميده


procedure TForm1.Button3Click(Sender: TObject);
var
OleGraphic: TOleGraphic;
fs: TFileStream;
begin
try
OleGraphic := TOleGraphic.Create;
OpenDialog1.Execute;
// fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmSharedenyNone);
OleGraphic.LoadFromFile(OpenDialog1.FileName);
// OleGraphic.LoadFromStream(fs);
Image1.Picture.Assign(OleGraphic);
finally
// fs.Free;
OleGraphic.Free
end;
end;

Kamyar.Kimiyabeigi
چهارشنبه 25 دی 1387, 13:44 عصر
وقتي از Image1.Picture.LoadFromFile استفاده ميكنم پيغام زير رو ميده


out of system resource

vcldeveloper
پنج شنبه 26 دی 1387, 02:14 صبح
در هنگام اجرای کد Task Manager ویندوز چه داده هایی درباره Commit Charge میده؟ درباره Peak Mem Usage و VM Size مربوط به Process برنامه تان چی میگه؟

Kamyar.Kimiyabeigi
شنبه 28 دی 1387, 09:44 صبح
در زمان Design وقتي ميخوام براي يك TImage عكس لود كنم هم Error ميده.

در زمان Design
VM Size : 318.000 K
MEM Usage : 251.884 K

در زمان اجراي برنامه
VM Size : 5.600 K
MEM Usage : 10.580 K

mossaferin
شنبه 28 دی 1387, 15:26 عصر
http://www.swissdelphicenter.ch/torry/showcode.php?id=1526

یه سری به اینجا بزنید ، من تست کردم مشکلی نداشت ، فایلهای بزرگ رو هم باز می کنه

موفق باشید

Kamyar.Kimiyabeigi
یک شنبه 29 دی 1387, 12:11 عصر
mossaferin عزيز ممنون از لينكي كه دادين خيلي خوب و مفيد بود منتها اشكال اينجاست كه فقط براي Bitmap كار ميكنه و بقيه فرمتها رو پشتيباني نميكنه
من سورس رو چك كردم عكس رو با اندازه واقعي لود ميكنه ولي بعد از لود كردن حجم عكس رو كم ميكنه كه اين از نظر كاربر ايراده چون توقع داره كه عكس با اندازه واقعي در ديتابيس باشه

mossaferin
دوشنبه 30 دی 1387, 14:02 عصر
mossaferin عزيز ممنون از لينكي كه دادين خيلي خوب و مفيد بود منتها اشكال اينجاست كه فقط براي Bitmap كار ميكنه و بقيه فرمتها رو پشتيباني نميكنه
من سورس رو چك كردم عكس رو با اندازه واقعي لود ميكنه ولي بعد از لود كردن حجم عكس رو كم ميكنه كه اين از نظر كاربر ايراده چون توقع داره كه عكس با اندازه واقعي در ديتابيس باشه

سلام

حق با شماست ، تو این مثال روش مهمه ، که میشه برای فرمت های دیگه هم تعمیم داد
راجع به تغییر سایز هم اگر فقط برای نمایش باشه ایرادی نداره ، ولی اگر برای ادیت یا کار دیگه ای باشه درسته، تغییر سایز اشکال داره


اگه وقت کنم سعی میکنم ببینم میشه کاری کرد ....
موفق باشی