要记得添加SD卡的读取权限 参考地址: package test.bawei.com.a0627; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import java.io.FileOutputStream; import static android.graphics.BitmapFactory.decodeFile; public class MainActivity extends AppCompatActivity { private ImageView image1,image2; private Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image1 = (ImageView)findViewById(R.id.image1); image2 = (ImageView)findViewById(R.id.image2); getDate(); getData2(); } public void getDate() { String url = "/mnt/sdcard/a.jpg"; bitmap= decodeFile(url); int width= bitmap.getWidth(); int height= bitmap.getHeight(); int count=bitmap.getRowBytes()*bitmap.getHeight(); int count1= bitmap.getByteCount(); try { FileOutputStream str = new FileOutputStream("/mnt/sdcard/aa_60.jpg"); bitmap.compress(Bitmap.CompressFormat.JPEG,60,str); width= bitmap.getWidth(); height= bitmap.getHeight(); count=bitmap.getRowBytes()*bitmap.getHeight(); count1= bitmap.getByteCount(); bitmap= decodeFile("/mnt/sdcard/aa_60.jpg"); image2.setImageBitmap(bitmap); } catch (Exception e) { e.printStackTrace(); } } public void getData2() { BitmapFactory.Options options=new BitmapFactory.Options(); options.inJustDecodeBounds=true; bitmap= BitmapFactory.decodeFile("/mnt/sdcard/a.jpg",options); image1.setImageBitmap(bitmap); int h= options.outHeight; int w=options.outWidth; int Size=1; while (h/Size>200||w/Size>300){ Size*=2; } options.inJustDecodeBounds=false; options.inSampleSize=Size; options.inPreferredConfig=Bitmap.Config.ARGB_8888; bitmap= BitmapFactory.decodeFile("/mnt/sdcard/a.jpg",options); } }
二次采样及质量压缩
最新推荐文章于 2021-06-07 10:11:27 发布