2017-02-06 52 views
2

我想產生的效果是完全一樣 this StackOverflow thread的例子:(相關問題)如何調整圖像大小然後用白色背景來集中圖像?可以使用php-Imagine庫來完成嗎?

1.Resize圖像
2.保持比例
3.添加或裝滿白色背景無圖像區域

以下是這個過程的三個示例:
1.如果原始爲方形,無論是640 * 640還是1024 * 1024,只需將其調整爲目標維度即可480 * 480將工作。
enter image description here

  • 如果原始輸入垂直矩形時,輸出不應該被裁剪 並且仍然被centerlized如下(紅色破折號邊緣標記只是使其更容易看到背景爲白色,比例被保持的大小調整爲圖像後480 * 480像素)
    enter image description here

  • 如果原始輸入是橫長方形,像下面輸出,白色背景下,保持比例和圖像uncroped,從而無圖像處理後丟失任何東西。
    enter image description here

  • 我已經澄清了這樣的問題,以便以後, 我想知道:

    1. 是否有這樣的自定義圖像的大小調整上述的總稱?
    2. 想知道如何用php image library實現它想象一下吧? 它是否可以使用php-imagine,或者不得不切換到另一個庫,例如imagemagick

    P.S.如果您想要實現圖像調整大小視頻大小調整的效果,您可以使用下面的FFMPEG單行命令。 (感謝@Mulvya,是下面的代碼同時適用於視頻和圖像格式)

    [下方運行內置的代碼在ffmpeg的控制檯實現提到Resize效果]

    [視頻大小調整]

    ffmpeg -i "[raw video url or videofile location.mp4]" -vf "scale=iw*min(480/iw\,480/ih):ih*min(480/iw\,480/ih),pad=480:480:(480-iw)/2:(480-ih)/2:color=white" [save_path_and_filename].mp4 
    

    [圖像尺寸]

    ffmpeg -i "[raw image url or imagefile location.jpg]" -vf "scale=iw*min(480/iw\,480/ih):ih*min(480/iw\,480/ih),pad=480:480:(480-iw)/2:(480-ih)/2:color=white" [save_path_and_filename].jpg 
    
    +0

    P.S. ffmpeg也適用於圖像。 – Mulvya

    +0

    :) @Mulvya是的,它運作良好,謝謝你提到它適用於視頻和圖像。所以我修改了上面寫的ffmpeg代碼用法。 – BOBO

    回答

    0

    對不起,我沒有給你完整的答案,它是一個評論太長,但可以使用本機,從而完成我的數學和php的http://php.net/manual/en/ref.image.php

    檢查imagecopyresize()imageecreate()圖像等領域。這是一個相當複雜的庫,所以你將不得不做一些嘗試和錯誤,以獲得你想要去的地方。

    從以往的經驗,您可以:

    • 創建一個空的圖像,imagecreatetruecolor()
    • 改變背景顏色爲白色
    • 拍攝圖像的scetion並粘貼到新創建的圖像使用imagecopyresample ()imagecopyresize()
    • 導出此圖像和gif,png,jpg。 imagepng(),imagejpg()。
    • 加水印
    • 和ALOT更多。

    對不起,我沒有一個更完整的答案,但取決於你的需要,它可能需要幾分鐘/小時才能使它完美。玩的開心。最重要的是,如果你知道ffmpeg,你可以使它們一起工作,製作出令人敬畏的媒體輸出。歡呼聲

    相關問題