我正在编写一个函数,它采用位图,编辑并保存。 但问题是保存的图像不具有相同的尺寸。 任何人都可以帮我修复它吗?我希望输出图像的长度和宽度与原始图像的长度和宽度相同。
这是我的代码 -
public void bitTest(View v) throws IOException {
Drawable t=getResources().getDrawable(R.drawable.slider_touch,getTheme());//the image to be processed
Bitmap bit=((BitmapDrawable) t).getBitmap();//its bitmap
Bitmap finalImage=Bitmap.createBitmap(bit.getWidth(),bit.getHeight(),bit.getConfig());//creating another bitmap of same dimensions
Context context=getApplicationContext();
FileOutputStream fos = context.openFileOutput("test.png", Context.MODE_PRIVATE);//saving
finalImage.compress(Bitmap.CompressFormat.PNG,100, fos);
fos.close();
}
此处原始尺寸的尺寸为288x192,但输出图像的尺寸为605x403。 我哪里错了?
我也试过改变质量,但它不起作用。
答案 0 :(得分:-1)
将图像资源放在drawable
目录中时,解码后的图像大小取决于正在运行的设备的屏幕大小。
将您的drawable保留在文件夹drawable-nodpi
内而不是其他可绘制目录中,以便保留图像大小。
除了使用BitmapDrawable
之外,您还可以使用BitmapFactory.decodeResource()