diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/nanchen/compressimage/MainActivity.java b/app/src/main/java/com/nanchen/compressimage/MainActivity.java index ef23d9d..e502b25 100644 --- a/app/src/main/java/com/nanchen/compressimage/MainActivity.java +++ b/app/src/main/java/com/nanchen/compressimage/MainActivity.java @@ -48,7 +48,21 @@ private void initInstances() { } public void compress(View view) { + // 默认的压缩方法,多张图片只需要直接加入循环即可 newFile = CompressHelper.getDefault(this).compressToFile(oldFile); + + // 你也可以自定义压缩 +// newFile = new CompressHelper.Builder(this) +// .setMaxWidth(720) // 默认最大宽度为720 +// .setMaxHeight(960) // 默认最大高度为960 +// .setQuality(80) // 默认压缩质量为80 +// .setCompressFormat(CompressFormat.JPEG) // 设置默认压缩为jpg格式 +// .setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory( +// Environment.DIRECTORY_PICTURES).getAbsolutePath()) +// .build() +// .compressToFile(oldFile); + + mImageNew.setImageBitmap(BitmapFactory.decodeFile(newFile.getAbsolutePath())); mTextNew.setText(String.format("Size : %s", getReadableFileSize(newFile.length()))); } diff --git a/compresshelper/src/main/java/com/nanchen/compresshelper/ImageUtil.java b/compresshelper/src/main/java/com/nanchen/compresshelper/ImageUtil.java index 9945982..eed9d3a 100644 --- a/compresshelper/src/main/java/com/nanchen/compresshelper/ImageUtil.java +++ b/compresshelper/src/main/java/com/nanchen/compresshelper/ImageUtil.java @@ -58,10 +58,24 @@ static Bitmap getScaledBitmap(Context context, Uri imageUri, float maxWidth, flo int actualHeight = options.outHeight; int actualWidth = options.outWidth; + if (actualHeight == -1 || actualWidth == -1){ + try { + ExifInterface exifInterface = new ExifInterface(filePath); + actualHeight = exifInterface.getAttributeInt(ExifInterface.TAG_IMAGE_LENGTH, ExifInterface.ORIENTATION_NORMAL);//获取图片的高度 + actualWidth = exifInterface.getAttributeInt(ExifInterface.TAG_IMAGE_WIDTH, ExifInterface.ORIENTATION_NORMAL);//获取图片的宽度 + } catch (IOException e) { + e.printStackTrace(); + } + } + if (actualWidth < 0 || actualHeight < 0) { Bitmap bitmap2 = BitmapFactory.decodeFile(filePath); - actualWidth = bitmap2.getWidth(); - actualHeight = bitmap2.getHeight(); + if (bitmap2 != null){ + actualWidth = bitmap2.getWidth(); + actualHeight = bitmap2.getHeight(); + }else{ + return null; + } } float imgRatio = (float) actualWidth / actualHeight;