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
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
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
  OrangeUI SkinFMXDBGrid Satırlara Resim Ekleme Hk. pro_imaj 11 1.090 02-04-2020, Saat: 20:54
Son Yorum: pro_imaj
  Android Imagelist e resim ekleme,TBitmap 41linea41 2 371 01-03-2020, Saat: 00:55
Son Yorum: Fesih ARSLAN
  listview resim çekme theercan 0 468 29-07-2019, Saat: 10:48
Son Yorum: theercan
  Resim Ortlama Problemi zihnidede 5 1.195 03-05-2019, Saat: 16:30
Son Yorum: Fesih ARSLAN
  Image nesnesinde resim olup olmadığın kontrolü 41linea41 5 1.318 17-03-2019, Saat: 15:11
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi