آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ذخیره عکس با حجم کمتر

SaeiD-as  7 سال پیش  7 سال پیش
+1 0

سلام دوستان، وقتتون بخیر و شادی

داخل برنامه ام با گوشی عکس میگیرم، زمانی که میخوام اونو ذخیره کنم داخل متد onActivityResult از کد زیر استفاده می کنم تا عکس رو با حجم کمتری ذخیره کنم:

 Bitmap bitmap = BitmapFactory.decodeFile(G.DIR + ImageName, options);

                bitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, false);
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);

مشکلی که دارم حجم عکس خیلی کوچیک میشه و داخل برنامه شطرنجی نشون داده میشه

بنظرتون راه حلش چیه؟

+2 0
توی کد بالا داری اندازه عکس رو 100 پیکسل در 100 پیکسل قرار میدی (7 سال پیش)
0 0
دمت گرم کریس جان، من فکر میکردم اون 100 درصد بزرگی عکسه که بالاتر نمیتونه باشه! :) بنظرت چه اندازه ای قرارش بدم خوبه برای سرعت برنامه و کیفیت عکس؟ (7 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
ajn91  7 سال پیش
+3 0

اگه نمیخواید سایز عکس رو تغییر بدید میتونید از کیفیت عکس کم کنید.با تغییر REQUIRED_SIZE کیفیت تغییر میکنه هرچه پایینتر کیفیت کمتر

private Bitmap decodeFile(File f) {
   try {
      // Decode image size
      BitmapFactory.Options options = new BitmapFactory.Options();
      options.inJustDecodeBounds = true;
      BitmapFactory.decodeStream(new FileInputStream(f), null, options);

      // The new size we want to scale to
      final int REQUIRED_SIZE = 100;

      // Find the correct scale value. It should be the power of 2.
      int scale = 1;
      while (options.outWidth / scale / 2 >= REQUIRED_SIZE &&
                   options.outHeight / scale / 2 >= REQUIRED_SIZE) {
         scale *= 2;
      }

      // Decode with inSampleSize
      BitmapFactory.Options options1 = new BitmapFactory.Options();
      options1.inSampleSize = scale;
      return BitmapFactory.decodeStream(new FileInputStream(f), null, options1);
   } catch (FileNotFoundException e) {
   }
   return null;
}

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .