Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Resim Boyutunu Küçültme
#1
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...
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#2
(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;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
Kalite ayarı yapabiliyorsunuz.

var
 CodecParams: TBitmapCodecSaveParams;

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

https://forums.embarcadero.com/thread.js...dID=116861
Cevapla
#4
(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.js...dID=116861
Teşekkürler
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#5
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...
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fmx Android - Termal Yazıcı Resim Yazdırma hi_selamlar 8 1.800 17-10-2024, Saat: 18:21
Son Yorum: esistem
  [Çözüldü] FMX Android uygulaması ile sunucuya resim yükleme Mesut 2 1.254 25-07-2023, Saat: 00:40
Son Yorum: Mesut
  Galerinden resim eklediğim zaman yönünün değişmesi codder71 4 1.760 24-07-2023, Saat: 18:32
Son Yorum: codder71
  Resim Çizme Programı quiet1day 0 724 24-07-2023, Saat: 11:35
Son Yorum: quiet1day
  IOS galeriden resim veya video seçme hakkında Mr.X 6 2.139 11-05-2023, Saat: 06:54
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi