Comply with EXIF settings when editing a picture
This commit is contained in:
parent
002b1548e1
commit
6eaae47140
|
@ -1,6 +1,8 @@
|
||||||
package org.pixeldroid.app.postCreation.photoEdit
|
package org.pixeldroid.app.postCreation.photoEdit
|
||||||
|
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.ImageDecoder
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
|
@ -54,17 +56,19 @@ class FilterListFragment : Fragment() {
|
||||||
private fun displayImage(bitmap: Bitmap?) {
|
private fun displayImage(bitmap: Bitmap?) {
|
||||||
val r = Runnable {
|
val r = Runnable {
|
||||||
val tbImage: Bitmap = (if (bitmap == null) {
|
val tbImage: Bitmap = (if (bitmap == null) {
|
||||||
// TODO: Shouldn't use deprecated API on newer versions of Android,
|
// TODO: Check that there is no crash for OpenGL reasons on newer versions of Android
|
||||||
// but the proper way to do it seems to crash for OpenGL reasons
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
// Honor EXIF orientation if API >= 28
|
||||||
// ImageDecoder.decodeBitmap(
|
ImageDecoder.decodeBitmap(ImageDecoder
|
||||||
// ImageDecoder.createSource(requireActivity().contentResolver, PhotoEditActivity.imageUri!!))
|
.createSource(requireActivity().contentResolver, PhotoEditActivity.imageUri!!))
|
||||||
//} else {
|
.copy(Bitmap.Config.ARGB_8888,true)
|
||||||
|
} else {
|
||||||
|
// Ignore EXIF orientation otherwise
|
||||||
MediaStore.Images.Media.getBitmap(
|
MediaStore.Images.Media.getBitmap(
|
||||||
requireActivity().contentResolver,
|
requireActivity().contentResolver,
|
||||||
PhotoEditActivity.imageUri
|
PhotoEditActivity.imageUri
|
||||||
)
|
)
|
||||||
//}
|
}
|
||||||
} else {
|
} else {
|
||||||
Bitmap.createScaledBitmap(bitmap, 100, 100, false)
|
Bitmap.createScaledBitmap(bitmap, 100, 100, false)
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,9 +5,12 @@ import android.app.AlertDialog
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.BitmapFactory
|
||||||
|
import android.graphics.ImageDecoder
|
||||||
import android.graphics.Point
|
import android.graphics.Point
|
||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
|
@ -116,7 +119,17 @@ class PhotoEditActivity : BaseActivity() {
|
||||||
|
|
||||||
|
|
||||||
private fun loadImage() {
|
private fun loadImage() {
|
||||||
originalImage = MediaStore.Images.Media.getBitmap(contentResolver, imageUri)
|
// TODO: Check that there is no crash for OpenGL reasons on newer versions of Android
|
||||||
|
originalImage = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
// Honor EXIF orientation if API >= 28
|
||||||
|
ImageDecoder
|
||||||
|
.decodeBitmap(ImageDecoder.createSource(contentResolver, imageUri!!))
|
||||||
|
.copy(BITMAP_CONFIG,true)
|
||||||
|
} else {
|
||||||
|
// Ignore EXIF orientation otherwise
|
||||||
|
MediaStore.Images.Media.getBitmap(contentResolver, imageUri)
|
||||||
|
}
|
||||||
|
|
||||||
compressedImage = resizeImage(originalImage!!)
|
compressedImage = resizeImage(originalImage!!)
|
||||||
compressedOriginalImage = compressedImage!!.copy(BITMAP_CONFIG, true)
|
compressedOriginalImage = compressedImage!!.copy(BITMAP_CONFIG, true)
|
||||||
filteredImage = compressedImage!!.copy(BITMAP_CONFIG, true)
|
filteredImage = compressedImage!!.copy(BITMAP_CONFIG, true)
|
||||||
|
|
Loading…
Reference in New Issue