CodeGym /Javaコース /Python SELF JA /コンテンツ準備のための画像の切り抜きと回転

コンテンツ準備のための画像の切り抜きと回転

Python SELF JA
レベル 45 , レッスン 2
使用可能

1. 画像の切り抜き

切り抜きの概念とその応用

じゃあ、画像をどうやって切り抜くか、回転させるかを理解していこう。このスキルはたくさんのプロジェクトで役立つよ — ウェブサイト用のグラフィック準備からソーシャルメディア用のコンテンツ作成までね。

画像の切り抜きは、写真の不要な端をカットして主要なオブジェクトに焦点を当てることみたいなもんだ。たとえば、夕日の写真を撮ったけど、端にたまたま好奇心旺盛なギャラリーが入ってるとする。切り抜きでそいつらを削除できるよ(もちろんデジタル上でね、訴訟も何もいらない!)。

メソッド crop()

crop() メソッドは、画像から切り出したい長方形領域の座標を受け取るんだ。座標は4つの値で設定される: (左, 上, 右, 下).


# 画像を切り抜く
cropped_image = image.crop((100, 100, 400, 400))

# 切り抜いた画像を保存する
cropped_image.save("cropped_example.jpg")
        

この例では、画像は(100, 100)の左上の角と(400, 400)の右下の角を持つ領域に切り抜かれる。このメソッドは元の画像の指定された部分だけを使って新しい画像を作成するんだ。

画像サイズに基づいた動的な切り抜き

画像を中央で切り抜きたい場合、サイズに基づいて切り抜きの座標を計算することができるよ:


width, height = image.size
left = (width - 200) / 2
top = (height - 200) / 2
right = (width + 200) / 2
bottom = (height + 200) / 2

center_cropped_image = image.crop((left, top, right, bottom))
center_cropped_image.save("center_cropped_example.jpg")
        

このコードは200x200ピクセルの中央部分を切り抜くよ。座標の計算により、切り抜き領域が画像の中央に配置されることを保証するんだ。

2. 画像の回転

画像を回転させることでその向きを変更できる。これは特に写真が間違った向きで撮られた場合や、アートの効果を作成したい場合に便利だ。

メソッド rotate()

rotate() メソッドは、指定された角度で画像を反時計回りに回転させる。角度は度で指定され、このメソッドは新しい回転された画像を作成するんだ。


# 画像を反時計回りに90度回転させる
rotated_image = image.rotate(90)
rotated_image.save("rotated_90_example.jpg")
        

この例では画像は反時計回りに90度回転される。他の角度(例えば45, 180, 270度)を指定することもできるし、自分が望む結果を得られるよ。

回転時の余白処理

デフォルトではrotate() は画像の端に白い余白(またはRGBAモード使用時は透明)を追加して、コンテンツ全体を保持するんだ。もし余白なしで画像がフレーム全体を満たすようにしたいなら、expand=True を使ってみて。


# おまけにフレームを拡大して余白なしで画像を回転
rotated_expanded_image = image.rotate(45, expand=True)
rotated_expanded_image.save("rotated_expanded_example.jpg")
        

この場合、Pillowは画像のサイズを増やして全てのコンテンツを収める。この手法は特に45度のような非標準的な角度で回転する際に役立つよ。

3. 画像の反転

画像を水平または垂直に反転させることができるよ。これは写真の方向を変えたり、対称的な効果を作成したりする際に便利。

メソッド transpose()

transpose() メソッドは画像を反転させるために使用され、以下のパラメータをサポートしている:

  • Image.FLIP_LEFT_RIGHT: 水平反転。
  • Image.FLIP_TOP_BOTTOM: 垂直反転。

# 水平反転
flipped_horizontal = image.transpose(Image.FLIP_LEFT_RIGHT)
flipped_horizontal.save("flipped_horizontal_example.jpg")

# 垂直反転
flipped_vertical = image.transpose(Image.FLIP_TOP_BOTTOM)
flipped_vertical.save("flipped_vertical_example.jpg")
        

これらのコマンドは画像を水平および垂直に反転させる。いろんな効果に使えるし、方向を修正するためにも便利だね。

切り抜き、回転、反転の実践例

  1. 画像の特定のエリアに焦点を合わせる: 切り抜きを使って必要な部分を強調することができる。ポートレートや余分な要素を削り取る際、またはSNSやウェブサイト用画像の準備に便利。
  2. 画像の向きを修正: 回転を使えば誤った向きで保存された写真を修正できる。例えば、横向きで撮影された画像を縦向きでポストするために調整することができるよ。
  3. 対称的な効果を作成: 反転はデザインにおいて対称的な画像を作成したり、面白い視覚効果を作り出したり、構成を改善するために頻繁に使われるよ。

4. よくあるエラーとその回避方法

Pillowを使うとき、特に初心者が遭遇するいくつかのエラーがあるよ。例えば、画像の実際のサイズを超えて切り抜こうとするとエラーが発生することがある。いつも画像のサイズを確認して、切り抜きの座標をその範囲内で設定するようにしよう。

もう一つのポイントは、回転後に画像が切り取られたように見えることがある場合だね。それは`rotate`メソッドを追加設定なしで使ったせい。こうならないためには、expand=Trueパラメータを使って自動的にサイズを調整しよう:


# 拡張で45度回転して角の切り取りを回避
rotated_image = image.rotate(45, expand=True)
rotated_image.save("rotated_expanded.jpg")
        
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION