2015-03-16 21 views
8

używam polecenia convert do zmiany rozmiaru obrazuZmiana rozmiaru obrazu z wyściółką z użyciem konwersji na ubuntu

Istnieją dwie wersje

Poniżej znajduje się pierwsza, wynikowy obraz zachowuje proporcje ale obraz nie musi być koniecznie wielkości nxn

convert temp.jpg -resize nxn temp.jpg 

druga wersja

convert temp.jpg -resize nxn! temp.jpg 

Nie zachowuje proporcji.

Co chcę jest, aby zachować proporcje i wypełnić resztę obrazu z pożądanej wartości RGB do acheive the rozmiar nxn

Jakieś pomysły?

Dzięki

+0

Spróbuj z ffmpeg: https: //trac.ffmpeg.org/wiki/ Skalowanie% 20% 28resowanie% 29% 20z% 20ffmpeg – Rups

Odpowiedz

18

Trzeba użyć -extent ustawić rozmiar płótna bezpośrednio po dokonaniu zmiany, a nowo utworzony obszar zostanie wypełniona cokolwiek ustawić -background do.

Tak więc, jeśli chcesz padding za magenta, to zrobić:

convert image.png -resize 100x100 -background "rgb(255,0,255)" -extent 100x100 out.png 

Jeśli chcesz, aby obraz pojawiać „w środku” obrazu wyjściowego, z wyściółką równomiernie rozmieszczone wokół boki, dodać -gravity center tak:

convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png 

tak więc, jeśli zaczniemy z szerokim niebieskim obrazie, czyli 300x100 i nie ma szans na dopasowanie odpowiednio w kwadracie, w następujący sposób:

enter image description here

i możemy zmienić jego rozmiar z tym:

convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png 

otrzymamy ten

enter image description here

+0

To idealna odpowiedź i zadziałało dla mojego problemu, przepraszam za spóźnienie, ponieważ mnie nie było, dziękuję za odpowiedź! – Shan