Advertisement
myLoveOnlyForYou

Untitled

May 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.31 KB | None | 0 0
  1. var oldBitmap = (mainImage.drawable as BitmapDrawable).bitmap // создаем битмап из imageview
  2. val height = oldBitmap.height // высота картинки и битмапа
  3. val width = oldBitmap.width // ширина
  4. var oldBittmapPixelsArray = IntArray(width * height) // массив его пикселей (пока просто массив, не двумерный, и пока он пустой, то есть ничего не содержит, т.е. пока это просто массив длиной width * height)
  5. var newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)  // ноздаем новый битмап (пока пустой, но шириной и высотой такой же, как и прошлый)
  6. var newBitmapPixelsArray = oldBittmapPixelsArray // создаем массив пикселей нового битмапа
  7. oldBitmap.getPixels(oldBittmapPixelsArray, 0, width, 0, 0, width, height) // заполняем старый массив пикселей пикселями из старого битмапа
  8. // а тут мы первращаем массив пикселей в матрицу пикселей
  9. val array = oldBittmapPixelsArray // массив-донор - массив пикселей старого битмапа
  10. val matrix = Array(height) { IntArray(width) } //будущая матрица
  11. for (i in matrix.indices) {
  12.     for (j in 0 until matrix[i].size) {
  13.         matrix[i][j] = array[count++] //перенос элементов из донора в матрицу
  14.     }
  15. }
  16. // Здесь изменяете матрицу, т.е. транспонируете ее
  17. // YOUR CODE
  18. // а далее превращаем матрицу обратно в массив пикселей
  19. for (row in 0 until height){
  20.     for (column in 0 until width) {
  21.         newBitmapPixelsArray[(row * width) + column] = matrix[row][column] // забиваем новый массив пикселей по формуле соответствующими значениями из матрицы
  22.     }
  23. }
  24. newBitmap.setPixels(newBitmapPixelsArray, 0, width, 0, 0, width, height) // добавляем полученные пиксели в новый битмап
  25. mainImage.setImageBitmap(newBitmap) // ставим новый битмап в imageview
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement