pythonでkindleのスクリーンショットをとっていき、最後までいったらストップするプログラムを書いていきます。
そのストップする処理をスクリーンショットが同じ画像という判定にします。
しかし、以下のプログラムでは違うスクリーンショットなのに同一と判定され、2枚とったら停止してしまいます。
# 画像が同一かどうかチェックする
def images_are_same(path1, path2):
print("prev_filepath :",path1)
print("curr_filepath :",path2)
img1 = Image.open(path1)
img2 = Image.open(path2)
diff = ImageChops.difference(img1, img2)
print("diff :",diff)
print("diff.getbox :",diff.getbbox())
return diff.getbbox() is None
結局、原因がわからなかったのでこの方法はやめて、画像ファイルの容量が同じかどうかで判別することにしました。
つぎにスクリーンショットの画像について、kindleの文章表示されていない、アプリの外側の部分が不要なので削除する機能を検討しました。
2つの画像を比較して、不要な部分を削除しようとしたが、それだと余白の白い部分まで削除されるので意図しない動作になってしまいます。
それにchatGPTが出してきたそれを実現するコードを試したら、何故か全部グレースケールになってしまったので取りやめにしました。
指定した部分のみスクリーンショットすることにしました。