[Kotlin][Java] Bitmap画像の回転・縦横合わせた中央切り抜き

Bitmap画像の回転のサンプルコード


 まずはkotlin。

fun rotateBitmap(bitmap: Bitmap, rotation: Int): Bitmap {
    val matrix = Matrix()
    matrix.postRotate(rotation.toFloat())
    return Bitmap.createBitmap(
        bitmap,
        0,
        0,
        bitmap.width,
        bitmap.height,
        matrix,
        true
    )
}

 次はjava。

Bitmap rotateBitmap(Bitmap bitmap, int rotation) {
    Matrix matrix = new Matrix();
    matrix.postRotate((float) rotation);
    return Bitmap.createBitmap(
            bitmap,
            0,
            0,
            bitmap.getWidth(),
            bitmap.getHeight(),
            matrix,
            true
    );
}

Bitmap画像の中央切り抜きのサンプルコード


 横長なら、横の長さを縦の長さに合わせるといった感じのサンプルコード。

 まずはkotlin。

fun centerCropBitmap(bitmap: Bitmap): Bitmap {
    if (bitmap.width == bitmap.height) {
        return bitmap
    }
    if (bitmap.width > bitmap.height) {
        val leftOffset = (bitmap.width - bitmap.height) / 2
        return Bitmap.createBitmap(
            bitmap,
            leftOffset,
            0,
            bitmap.height,
            bitmap.height,
            null,
            true
        )
    }
    val topOffset = (bitmap.height - bitmap.width) / 2
    return Bitmap.createBitmap(
        bitmap,
        0,
        topOffset,
        bitmap.width,
        bitmap.width,
        null,
        true
    )
}

 つぎはjava。

Bitmap centerCropBitmap(Bitmap bitmap) {
    if (bitmap.getWidth() == bitmap.getHeight()) {
        return bitmap;
    }
    if (bitmap.getWidth() > bitmap.getHeight()) {
        int leftOffset = (bitmap.getWidth() - bitmap.getHeight()) / 2;
        return Bitmap.createBitmap(
                bitmap,
                leftOffset,
                0,
                bitmap.getHeight(),
                bitmap.getHeight(),
                null,
                true
        );
    }
    int topOffset = (bitmap.getHeight() - bitmap.getWidth()) / 2;
    return Bitmap.createBitmap(
            bitmap,
            0,
            topOffset,
            bitmap.getWidth(),
            bitmap.getWidth(),
            null,
            true
    );
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です