2000815
@2000815 (Keishi Ichida)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pillowでの画像編集でのバグ

解決したいこと

メルカリやラクマで使用する画像編集を自動化したいと思い作っています。

pythonのpillowを使用して画像、写真に文字を入れたのですが、文字の位置がうまく定まりません。

画像に対して文字が横に入ってしまう現象が起きています。

例)
 
image.png
befor.PNG

解決方法を教えて下さい。

エラメッセージはありません。

発生している問題・エラー

from PIL import Image, ImageDraw, ImageFont
import sys
import glob


args = sys.argv


print(args)
print("第1引数:" + args[1])
print("第2引数;" + args[2])
print("画像の名前:" + args[3])



#画像の読み込みとサイズの確認
img = Image.open('pillow/'+ args[3])
small_img= img.resize((1080, 1080))
small_img.save('pillow/bfor.PNG')






draw = ImageDraw.Draw(small_img)
width ,height= small_img.size
font_size= 90
font_path= '/Library/Fonts/Arial Unicode.ttf'
font = ImageFont.truetype( font_path , font_size) #fontの種類と左上の文字サイズ
draw.text((0, 0), args[2],(252,76,0),font=font) #左上の文字

size = font.getsize(args[1])#ここにも文字を入力する(サイズに関する)

draw.text((height/2,width), args[1], (252,126,254),font=font,anchor='mb') 
draw.text((width,0), '未使用品',(252,76,0),font=font,anchor='ra') 



#同じファイルに保存
small_img.save('change/befor.PNG' , quality=95)


#第一引数に商品名、第二引数にサイズ

ファイル構造

image.png
スクリーンショット 2021-05-25 7.19.45.png

自分で試したこと

写真の保存がjpngで保存していることが原因だと思い、PNGにし画像の大きさも固定しましたができませんでした。

アイフォンの撮影した写真を使用できるようにしたいのです。

回答宜しくお願い致します。

0

2Answer

Comments

  1. @2000815

    Questioner

    コメントありがとうございます。

    for orientation in ExifTags.TAGS.keys():
    if ExifTags.TAGS[orientation]=='Orientation' :
    break
    exif=dict(image._getexif().items())

    if exif[orientation] == 3 :
    img=image.rotate(180, expand=True)
    elif exif[orientation] == 6 :
    img=image.rotate(270, expand=True)
    elif exif[orientation] == 8 :
    img=image.rotate(90, expand=True)

    img.thumbnail((THUMB_WIDTH , THUMB_HIGHT), Image.ANTIALIAS)
    small_img = img.resize((1080, 1080))

    この部分を作成して、追加してみたのですが、
    TypeError: 'NoneType' object is not iterable 
    というエラーで躓いてしまいました。もしわかるなら回答宜しくお願い致します。
  2. このコードでそのエラーが出るとしたら1行目だと思うのですが、`ExifTags`が`PIL.ExifTags`を意味しているならこのままでも正常に動くと思います。
    もし違う行でエラーが生じているようでしたら、その部分を載せていただかないと回答しようがありません。
  3. @2000815

    Questioner

    コメントありがとうございます。解決しました。
    初めて海外のサイトを使用して解決しました。いい経験になりました。
    ありがとうございました。

直接の解決方法は分かりませんが、画像を右に90度回してから文字を描画して元の向きに戻せば横書きにはできると思います。

0Like

Comments

  1. @2000815

    Questioner

    コメントありがとうございます。試してみます。

Your answer might help someone💌