smart_resize_image
ページの容量を減らし表示を早くする為、一覧ページなどはよくサムネイル画像を作って表示させることがあります。しかし、「class.image.php」や「class.upload.php」などのライブラリでは透過gifをリサイズすると透過部分が黒くなってしまいました。透過情報を維持しながらリサイズできるライブラリがないか調べていると「smart_resize_image」というライブラリが透過gifと透過pngに対応していることがわかりました。
「smart_resize_image」について詳しく調べてみました。
「Medium eXposure」からライブラリを手にいれることができます。トップページの右サイドメニューに「smart_resize_image」へのリンクがあるのでクリックすると、このライブラリのページになります。
①smart_resize_imageとは
「smart_resize_image」の説明が書いていました。簡単に翻訳してみます。
右に書かれているようなことは簡単に見つかるべきです。縦横比を維持するか、縦か横どちらかを固定するか選択でき、スケールアップ・ダウンするか意識することもなく画像をリサイズする関数。また透過性を維持したい。驚くことに、私はそれら全てを満たす良い関数が見つけることができなかった。だから私は自分で書くことに決めました。
②ライセンス
有償だと使用しにくいのでライセンスについても調べてみました。無償のようです。簡単に翻訳してみます。
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
以下の条件を前提として、このソフトと添付文章をコピーして獲得することを無償で許可します。コピー、修正、併合、公開、配布、サブライセンスの制限もしませんし、販売ソフトにも利用しても構いません。上記のコピーライトとこの仕様承諾書をソフトウェアの全てのコピーまたは相当な部分に含むようにしてください。
このソフトウェアは現状のまま、いかなる種類の保証も否認します。商品性、特定目的への適合性及び非侵害に限定せず、明示的または暗黙であろうと保証しません。決して著者または著作権者はいかなる主張、損害その他の責任に対して責任がありません。不法行為であろうかなかろうが、それがソフトウェアを使用して起こったか、またはその他に関連して起こったか関係ありません。
①関数の引数
コードを少し解析してみました。コード自体はそれほど長くないです。
| $file | 画像ファイル名 |
| $height | リサイズ後の画像縦サイズ |
| $height | リサイズ後の画像幅サイズ |
| $proportional | 縦横比を維持するかどうか |
| $output | file:元ファイルを上書き browser:ブラウザ出力 return:リサイズ画像オブジェクトID |
| $delete_original | 元画像を削除するかどうか |
| $use_linux_commands | true:画像削除にrm false:画像削除に@unlink |
実際使ってみましたがきちんと透過情報を維持できてました。引数を渡すだけなので使用方法も簡単です。GDライブラリを利用してリサイズしているのでGDが使える環境でないと使用できません。公式サイトに詳しい仕様など書いてるので、もっと調べたい方は公式サイトを読んでみてください。
※
翻訳があってるかどうかは保証できません。各自で英語を1回読んでおいてください。

