From 53f57830e60a214532a6264688d488088c3c5186 Mon Sep 17 00:00:00 2001 From: MRSa Date: Mon, 15 Mar 2021 22:49:47 +0900 Subject: [PATCH] =?utf8?q?=E3=83=97=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?utf8?q?=E7=94=BB=E5=83=8F=EF=BC=88=E3=83=A9=E3=82=A4=E3=83=96=E3=83=93?= =?utf8?q?=E3=83=A5=E3=83=BC=E7=94=BB=E5=83=8F=EF=BC=89=E4=BF=9D=E5=AD=98?= =?utf8?q?=E6=99=82=E3=81=ABXMP=E3=82=92=E8=A8=AD=E5=AE=9A=E3=81=97?= =?utf8?q?=E3=81=A6=E3=80=81Google=E3=83=95=E3=82=A9=E3=83=88=E3=81=A7360?= =?utf8?q?=E5=BA=A6=E7=94=BB=E5=83=8F=E3=81=A8=E8=AA=8D=E8=AD=98=E3=81=97?= =?utf8?q?=E3=81=A6=E3=82=82=E3=82=89=E3=81=86=E3=82=88=E3=81=86=E3=81=AB?= =?utf8?q?=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +-- .../thetaview/liveview/storeimage/StoreImage.kt | 33 ++++++++++++++++++++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4b2314f..61b6048 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "jp.osdn.gokigen.thetaview" minSdkVersion 21 targetSdkVersion 30 - versionCode 10001 - versionName "1.0.1" + versionCode 10002 + versionName "1.0.2" } buildTypes { diff --git a/app/src/main/java/jp/osdn/gokigen/thetaview/liveview/storeimage/StoreImage.kt b/app/src/main/java/jp/osdn/gokigen/thetaview/liveview/storeimage/StoreImage.kt index 11e8c02..3cbb1b3 100644 --- a/app/src/main/java/jp/osdn/gokigen/thetaview/liveview/storeimage/StoreImage.kt +++ b/app/src/main/java/jp/osdn/gokigen/thetaview/liveview/storeimage/StoreImage.kt @@ -12,6 +12,7 @@ import jp.osdn.gokigen.thetaview.R import jp.osdn.gokigen.thetaview.liveview.image.IImageProvider import jp.osdn.gokigen.thetaview.preference.IPreferencePropertyAccessor import jp.osdn.gokigen.thetaview.preference.PreferenceAccessWrapper +import java.io.ByteArrayOutputStream import java.io.File import java.io.FileOutputStream @@ -46,6 +47,7 @@ class StoreImage(private val context: FragmentActivity, private val imageProvide } } +/* private fun storeImageImpl(target: Bitmap) { /* @@ -89,7 +91,7 @@ class StoreImage(private val context: FragmentActivity, private val imageProvide t.printStackTrace() } } - +*/ private fun prepareLocalOutputDirectory(): File { val mediaDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES) @@ -167,6 +169,11 @@ class StoreImage(private val context: FragmentActivity, private val imageProvide values.put(MediaStore.Images.Media.MIME_TYPE, mimeType) val extStorageUri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { values.put(MediaStore.Images.Media.RELATIVE_PATH, path) +/* + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + values.put(MediaStore.Images.Media.XMP, xmpValue) + } +*/ values.put(MediaStore.Images.Media.IS_PENDING, true) MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY) } else { @@ -196,7 +203,29 @@ class StoreImage(private val context: FragmentActivity, private val imageProvide val outputStream = resolver.openOutputStream(imageUri) if (outputStream != null) { - targetImage.compress(Bitmap.CompressFormat.JPEG, 100, outputStream) + val xmpValue = "http://ns.adobe.com/xap/1.0/" + val xmpValue1 = " " + + "" + + "Trueequirectangular" + + "${targetImage.width}${targetImage.height}" + + "${targetImage.width}${targetImage.height}"+ + "00" + val xmpLength = xmpValue.length + xmpValue1.length + 3 + val byteArrayStream = ByteArrayOutputStream() + targetImage.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayStream) + val jpegImage = byteArrayStream.toByteArray() + + outputStream.write(jpegImage, 0, 20) + outputStream.write(0xff) + outputStream.write(0xe1) + outputStream.write((xmpLength and 0xff00) shr 8) + outputStream.write((xmpLength and 0x00ff)) + outputStream.write(xmpValue.toByteArray()) + outputStream.write(0x00) + outputStream.write(xmpValue1.toByteArray()) + outputStream.write(jpegImage, 20, (jpegImage.size -20)) + + //targetImage.compress(Bitmap.CompressFormat.JPEG, 100, outputStream) outputStream.flush() outputStream.close() } -- 2.11.0