2017-06-05 6 views
0

私は、画像のサイズを変更するPythonスクリプトを作成したいが、ちょうど、のPython:画像サイズ変更:比率を保つ - 追加白い背景

(だから、白の背景を追加することによって、その比率を変えないだろう:500 * 700 pxの画像は、それぞれの側に100 pxの白いバンドを追加することで700 * 700ピクセルの画像に変換されます)

私が使用する3つの画像タイプは、.PNG、.JPGおよび.GIFです。私はGIF、PNG、JPGがすでに素晴らしいとは思えない。

私の場合、正方形でなければなりません。しかし、いずれかの割合に適応するためにあなたがそれを行うことができれば、このスレッドを見る人の最大数に恩恵を受けるだろうし、あなたはさらに素晴らしいだろう!

他の言語では同じですが、Pythonではないスレッドを見ましたが、どうやってこれを行うのですか?

PS:

は、3枚の画像を一緒に組み合わせること:私は、私が試したどのようなPythonの3

を使用しています。

500×700ピクセルの画像の場合: 100×700ピクセルの白い画像を2つ作成し、画像の両側に1つずつ挿入します。触発さ:

Combine several images horizontally with Python

しかし、私は一種の新しいのpythonに、と私はsuccededしていません。

+1

イメージを2D numpy行列として表す場合は、numpyルーチンを呼び出してそれらを埋め込むことができます。 –

+0

SOはコード作成サービスではありません。あなたがこれまでに持っているコードを投稿して、どの部分が固まっているかを明示してください。 –

+2

私はむしろ、必要なサイズの白黒画像を1つ作成して、入力を貼り付けることを提案したいと思います(詳細については、こちらを参照してください)。画像をその中心に置く。最も確かに 'PIL'モジュールがその仕事をすることができます。 –

答えて

1

は、最後にそれをやった:

def Reformat_Image(ImageFilePath): 

    from PIL import Image 
    image = Image.open(ImageFilePath, 'r') 
    image_size = image.size 
    width = image_size[0] 
    height = image_size[1] 

    if(width != height): 
     bigside = width if width > height else height 

     background = Image.new('RGBA', (bigside, bigside), (255, 255, 255, 255)) 
     offset = (int(round(((bigside - width)/2), 0)), int(round(((bigside - height)/2),0))) 

     background.paste(image, offset) 
     background.save('out.png') 
     print("Image has been resized !") 

    else: 
     print("Image is already a square, it has not been resized !") 

提案のための@Blotosmetekのおかげで、中央に画像を貼り付けることはイメージを作成し、それらを組み合わせたよりも間違いなく簡単です!

PS:まだPILをお持ちでない場合、pipでインストールするライブラリの名前はPILではなく「ピロー」です。しかし、それでもコード内ではPILとして使用します。

関連する問題