Delphi Can
Resim Boyutunu Küçültme - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Resim Boyutunu Küçültme (/showthread.php?tid=3019)



Resim Boyutunu Küçültme - narkotik - 12-12-2018

Merhaba,
Mobil uygulamam içerisinde galeriden resim seçimi yaptırıyorum. Bu resimleri veritabanında saklıyorum. Vcl için resim boyutlandırma(küçültme) mümkün fakat mobilde nasıl bir yol izliyorsunuz. Çünkü 3-5 mb'lık resimler var. Bunları saklamanında geri yüklemeninde bir maliyeti var. Şimdiden önerileriniz için teşekkürler...


Cvp: Resim Boyutunu Küçültme - mcuyan - 12-12-2018

(12-12-2018, Saat: 02:15)narkotik Adlı Kullanıcıdan Alıntı: Merhaba,
Mobil uygulamam içerisinde galeriden resim seçimi yaptırıyorum. Bu resimleri veritabanında saklıyorum. Vcl için resim boyutlandırma(küçültme) mümkün fakat mobilde nasıl bir yol izliyorsunuz. Çünkü 3-5 mb'lık resimler var. Bunları saklamanında geri yüklemeninde bir maliyeti var. Şimdiden önerileriniz için teşekkürler...

Merhaba, Bir projemde kullanmıştım kodları. Çalışıyor.. Kendinize göre uyarlarsınız.. Image 6 da kameradan çekilen büyük resim var, Bunu 64x64 e küçütüp imahe 10 a basıyorum ordan da db nin ilgili field'i ne iliştiriyorum.



var
  ms, msk: TMemoryStream;
 Surf,surfk: TBitmapSurface;
 V: Variant;
 saveParams : TBitmapCodecSaveParams;


    if not Image6.Bitmap.IsEmpty then
    begin
     ms := TMemoryStream.Create;
     msk := TMemoryStream.Create;
     Surf := TBitmapSurface.Create;
     Surfk := TBitmapSurface.Create;
     Image10.Bitmap.Assign(Image6.Bitmap);
     Image10.Bitmap.Resize(64, 64);
     Surf.Assign(image6.Bitmap);
     Surfk.Assign(image10.Bitmap);
     Saveparams.Quality := 50;
     TBitmapCodecManager.savetostream(ms, Surf, '.jpg',@SaveParams);
     TBitmapCodecManager.savetostream(msk, Surfk, '.jpg',@SaveParams);
     ms.Position := 0;
     msk.Position := 0;
     TBlobField(MT.FieldByName('parca_res1')).LoadFromStream(ms);
     TBlobField(MT.FieldByName('parca_res1k')).LoadFromStream(msk);
     ms.Free;
     msk.Free;
     image6.Bitmap := nil;
     image10.Bitmap := nil;
     surf.Free;
     surfk.Free;
   end;



Resim Boyutunu Küçültme - engerex - 12-12-2018

Kalite ayarı yapabiliyorsunuz.

var
 CodecParams: TBitmapCodecSaveParams;

///....
begin
 CodecParams.Quality := 50;
 Image1.bitmap.SaveToFile('..\..\i10.jpg', @CodecParams);
end;

https://forums.embarcadero.com/thread.jspa?threadID=116861


Cvp: Resim Boyutunu Küçültme - narkotik - 12-12-2018

(12-12-2018, Saat: 12:22)mcuyan Adlı Kullanıcıdan Alıntı:
(12-12-2018, Saat: 02:15)narkotik Adlı Kullanıcıdan Alıntı: Merhaba,
Mobil uygulamam içerisinde galeriden resim seçimi yaptırıyorum. Bu resimleri veritabanında saklıyorum. Vcl için resim boyutlandırma(küçültme) mümkün fakat mobilde nasıl bir yol izliyorsunuz. Çünkü 3-5 mb'lık resimler var. Bunları saklamanında geri yüklemeninde bir maliyeti var. Şimdiden önerileriniz için teşekkürler...

Merhaba, Bir projemde kullanmıştım kodları. Çalışıyor.. Kendinize göre uyarlarsınız.. Image 6 da kameradan çekilen büyük resim var, Bunu 64x64 e küçütüp imahe 10 a basıyorum ordan da db nin ilgili field'i ne iliştiriyorum.



var
  ms, msk: TMemoryStream;
 Surf,surfk: TBitmapSurface;
 V: Variant;
 saveParams : TBitmapCodecSaveParams;


    if not Image6.Bitmap.IsEmpty then
    begin
     ms := TMemoryStream.Create;
     msk := TMemoryStream.Create;
     Surf := TBitmapSurface.Create;
     Surfk := TBitmapSurface.Create;
     Image10.Bitmap.Assign(Image6.Bitmap);
     Image10.Bitmap.Resize(64, 64);
     Surf.Assign(image6.Bitmap);
     Surfk.Assign(image10.Bitmap);
     Saveparams.Quality := 50;
     TBitmapCodecManager.savetostream(ms, Surf, '.jpg',@SaveParams);
     TBitmapCodecManager.savetostream(msk, Surfk, '.jpg',@SaveParams);
     ms.Position := 0;
     msk.Position := 0;
     TBlobField(MT.FieldByName('parca_res1')).LoadFromStream(ms);
     TBlobField(MT.FieldByName('parca_res1k')).LoadFromStream(msk);
     ms.Free;
     msk.Free;
     image6.Bitmap := nil;
     image10.Bitmap := nil;
     surf.Free;
     surfk.Free;
   end;

Teşekkürler akşam deneyip performans olayinida inceleyip geri dönüş yaparim

(12-12-2018, Saat: 15:02)engerex Adlı Kullanıcıdan Alıntı: Kalite ayarı yapabiliyorsunuz.

var
 CodecParams: TBitmapCodecSaveParams;

///....
begin
 CodecParams.Quality := 50;
 Image1.bitmap.SaveToFile('..\..\i10.jpg', @CodecParams);
end;

https://forums.embarcadero.com/thread.jspa?threadID=116861
Teşekkürler


Cvp: Resim Boyutunu Küçültme - narkotik - 12-12-2018

procedure TFrameNote.PhotoLibrarySelectDidFinishTaking(Image: TBitmap);
Var
 imageStream  :  TMemoryStream;
 imageSurf    :  TBitmapSurface;
 resizeParams :  TBitmapCodecSaveParams;
begin
 imageStream  := TMemoryStream.Create;
 imageSurf    := TBitmapSurface.Create;
 try
   imageSurf.Assign(Image);
   resizeParams.Quality := 25;
   TBitmapCodecManager.SaveToStream(imageStream, imageSurf, '.jpg',@resizeParams);
   imageStream.Position := 0;
   ImgResim.Bitmap.LoadFromStream(imageStream);
 finally
   imageStream.Free;
   imageSurf.Free;
 end;
end;

ile işlemler tamamlanmıştır. Konuda yardımcı olan arkadaşlara teşekkürler...