我正在开发一个应用程序,用户可以通过我的 CameraActivity(SurfaceView+Camera)拍照并保存它。之后,将处理位图。
说了这么多,让我来详细介绍一下。这张照片是用:
mCamera.takePicture(null, null, new PictureCallback() {...}
我没有指定 .jpeg 质量。
用 HTC One S 进行测试,拍照后保存。图片大小从不超过 100kb
用三星 GT-I9000 测试,图片是拍摄然后保存的,但这里的区别是大小,它超过了 1,2Mb。
由于我需要稍后处理位图,因此当我尝试解码 bimap 以处理它时,我遇到了 GT-I9000 的一些OutOfMemory问题:
try {
FileInputStream fis = new FileInputStream(new File(imagePath));
Bitmap savedPicture = BitmapFactory.decodeStream(fis);
我试图改变Camera Parameters .setJpegQuality(quality)
,但我并没有产生很大的不同。
图像将占据所有屏幕尺寸,我使用这种方法有效地加载大位图 它有效,我摆脱了OutOfMemory 异常,但我仍然有一些问题:
设备之间的文件大小差异?我认为 HTC One S 比 GT-I9000 更好,那为什么不保存更大的图片呢?
图像分辨率,HTC One S 640x480,GT-I9000 2560x1920 为什么?好吧,这回答了第一个问题,但是为什么会这样呢?
谢谢你的时间 ;)