android – 如何在没有内存异常的情况下从“onPictureTaken”旋转图片?

我在那里看过很多帖子?但我找不到正确答案.

我尝试做一些事情:

@Override
public void onPictureTaken(byte[] paramArrayOfByte,Camera paramCamera) {
    try {


        Bitmap bitmap = BitmapFactory.decodeByteArray(paramArrayOfByte,paramArrayOfByte.length);

        int width = bitmap.getWidth();
        int height = bitmap.getHeight();

        FileOutputStream os = new ileOutputStream(Singleton.mpushFilePath);

        Matrix matrix = new Matrix();
        matrix.postRotate(90);
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmap,width,height,matrix,false);

        resizedBitmap.compress(Bitmap.CompressFormat.JPEG,95,os);
        os.close();
        ...

有没有办法旋转图片,而不使用BitmapFactory?我想要旋转图片而不会损失质量!

最佳答案
也许您可以根据需要使用Camera.setdisplayOrientation拍摄已旋转的照片?检查Android camera rotate.此外,调查Camera.Parameters.setRotation().其中一种技术应该适合你.

否则你的代码看起来很好,除了在Bitmap.compress上使用参数95,你需要使用100进行无损压缩.

为避免内存不足异常,请使用Camera.Parameters.setPictureSize()获取较低分辨率的图片(例如3Mpx).即你真的需要8Mpx照片吗?确保使用Camera.Parameters.getSupportedPictureSizes()来确定设备支持的大小.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...