Merhaba
Forma örneğin 9925x7017 boyutlarında bir resim atılıp derlendiğinde çok fazla hafıza kullanıyor. (Resim olmadan kullanılan hafıza : 1.6 k, resimden sonra 210 k) Forma 10 dan fazla da böyle resim yüklediğimizde de doğal olarak bilgisayar programı açmada zorlanıyor. Bu kullanılan hafızayı azaltmanın bir yolu var mıdır ?
Teşekkürler.
Image ve Kullandığı Hafıza
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Image ve Kullandığı Hafıza
Form üzerine 1 adte Timage nesnesi koyun
Belirttiğiniz işi sanal olarak virtual image nesnesinden create ve free ederek
gerçi bunun iyi tarafı virtualimage.free edildiğinde bmp.bmp interrupt kullanımından da kalkıyor
anlamı Resim forma yüklendikten sonra virtualimaj işi bitince bu nesne yok ediliyor, böylece disk üzerindeki o bmp resmi silebilirsinde değiştirebilirsinde
Biraz uğraşarak
form açılışında disk üzerindeki bir BMP dosyadan kaynak okunup virtual olarak image1 nesnesine atama ile oldu bu
Belirttiğiniz işi sanal olarak virtual image nesnesinden create ve free ederek
gerçi bunun iyi tarafı virtualimage.free edildiğinde bmp.bmp interrupt kullanımından da kalkıyor
anlamı Resim forma yüklendikten sonra virtualimaj işi bitince bu nesne yok ediliyor, böylece disk üzerindeki o bmp resmi silebilirsinde değiştirebilirsinde
Kod: Tümünü seç
var
virtualimaj: TBitmap;
begin
virtualimaj := TBitmap.Create;
virtualimaj.LoadFromFile('d:\bmp.bmp'); // buraya opendialog dosya yolunuda yazabilirsiniz
imaj.Picture.Bitmap.Assign(virtualimaj);
virtualimaj.Free;
form açılışında disk üzerindeki bir BMP dosyadan kaynak okunup virtual olarak image1 nesnesine atama ile oldu bu
Kod: Tümünü seç
//uses jpeg unitini eklemeyi unutmadan
var
bmp : TImage;
jpg : TJpegImage;
begin
if OpenDialog1.Execute then begin
bmp := TImage.Create(nil);
jpg := TJpegImage.Create;
bmp.picture.bitmap.LoadFromFile (opendialog1.FileName ); // Dilerseniz Resmin direkt yolunu string olarak atayabilirsin
jpg.Assign( bmp.picture.bitmap );
jpg.CompressionQuality := (5); //---> Bu satır resmin kalitesini belirliyor 0...100 arası değer olabilir
jpg.Compress; //---> Bu satır sıkıştırıyor
jpg.SaveToFile (extractfilepath(application.exename)+'\tmp.jpg' );
jpg.Free;
bmp.Free;
image1.Picture.LoadFromFile(extractfilepath(application.exename)+'\tmp.jpg' );
end;
end;
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Re: Image ve Kullandığı Hafıza
Teşekkürler cevabınız için ama maalesef kullandığı hafıza gözlegörülür değişme olmadı.