in RenderScriptMigrationSample/app/src/main/java/com/android/example/rsmigration/RenderEffectImageProcessor.kt [43:71]
override fun rotateHue(radian: Float, outputIndex: Int): Bitmap {
params?.let {
val colorMatrix = if (radian == 0f) {
ColorMatrix()
} else {
val cos = cos(radian.toDouble())
val sin = sin(radian.toDouble())
ColorMatrix(floatArrayOf(
(.299 + .701 * cos + .168 * sin).toFloat(), //0
(.587 - .587 * cos + .330 * sin).toFloat(), //1
(.114 - .114 * cos - .497 * sin).toFloat(), //2
0f, 0f, //3,4
(.299 - .299 * cos - .328 * sin).toFloat(), //5
(.587 + .413 * cos + .035 * sin).toFloat(), //6
(.114 - .114 * cos + .292 * sin).toFloat(), //7
0f, 0f, //8,9
(.299 - .300 * cos + 1.25 * sin).toFloat(), //10
(.587 - .588 * cos - 1.05 * sin).toFloat(), //11
(.114 + .886 * cos - .203 * sin).toFloat(), //12
0f, 0f, 0f, 0f, 0f, //13,14,15,16,17
1f, 0f //18,19
))
}
val colorFilterEffect =
RenderEffect.createColorFilterEffect(ColorMatrixColorFilter(colorMatrix))
return applyEffect(it, colorFilterEffect, outputIndex)
}
throw RuntimeException("Not configured!")
}