package com.example.myapplication
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.*
import android.graphics.ColorSpace.Rgb
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import java.nio.ByteBuffer
import java.lang.Float
import android.graphics.ColorMatrix
import android.graphics.ColorMatrixColorFilter
import android.graphics.ColorSpace
import java.util.Calendar.getInstance
class MainActivity : AppCompatActivity() {
private lateinit var imageView: ImageView
private val REQUEST_CODE_UPLOAD_IMAGE = 1
private val READ_EXTERNAL_STORAGE_REQUEST_CODE = 2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
imageView = findViewById(R.id.imageView)
imageView.setOnClickListener {
// 在这里实现打开图片预览的代码
// 可以使用第三方库或自己实现一个图片预览界面
}
val uploadButton = findViewById<Button>(R.id.uploadButton)
uploadButton.setOnClickListener {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
READ_EXTERNAL_STORAGE_REQUEST_CODE
)
} else {
openImageSelector()
}
}
}
private fun openImageSelector() {
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "image/*"
startActivityForResult(intent, REQUEST_CODE_UPLOAD_IMAGE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_UPLOAD_IMAGE && resultCode == Activity.RESULT_OK) {
// 在这里处理从本地图片选择器返回的结果
val selectedImageUri: Uri? = data?.data
if (selectedImageUri != null) {
// 将选中的图片显示在ImageView上
imageView.setImageURI(selectedImageUri)
}
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == READ_EXTERNAL_STORAGE_REQUEST_CODE) {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openImageSelector()
} else {
Toast.makeText(
this,
"需要授权才能选择本地图片",
Toast.LENGTH_SHORT
).show()
}
}
}
@RequiresApi(Build.VERSION_CODES.O)
fun colormanager(view: View) {
Toast.makeText(this, "下面将进行色彩管理", Toast.LENGTH_SHORT).show()
// 在这里添加你的色彩管理代码
val inputStream = resources.openRawResource(R.raw.eci)
val byteArray = inputStream.readBytes()
val buffer = ByteBuffer.wrap(byteArray)
val floatArray = FloatArray(byteArray.size / 4)
for (i in floatArray.indices) {
floatArray[i] = Float.intBitsToFloat(buffer.int).toFloat()
}
val params = Rgb.TransferParameters(
0.45454544, // a
0.3030303, // b
0.0, // c
0.45454544, // d
0.6969697 // g
)
val fromSpace = ColorSpace.get(ColorSpace.Named.DISPLAY_P3)
val toSpace = ColorSpace.get(ColorSpace.Named.SRGB)
val connector = fromSpace.connect(toSpace, params)
val colorMatrix = ColorMatrix()
connector.connect(colorMatrix)
val colorFilter = ColorMatrixColorFilter(colorMatrix)
val imageView = findViewById<ImageView>(R.id.imageView)
imageView.colorFilter = colorFilter
}
}
在这里一直报错Unresolved reference: connect

