PECL::Imagickã試ã
GDã§å±éã§ããªãç»å*1ããã£ãã®ã§ImageMagickã試ããã¨æã£ã¦å°å ¥ãã¦ã¿ã¾ããã
ã¤ã³ã¹ãã¼ã«
peclã¢ã¸ã¥ã¼ã«ãªã®ã§ã³ãã³ãã©ã¤ã³1çºã§æ¥½ãã³ã
sudo pecl install imagick
php.iniã«ã©ã¤ãã©ãªãå¼ã³åºãè¨è¿°ã追å
extension=imagick.so
å®éã«ä½¿ã£ã¦ã¿ã
ããã¥ã¢ã«ã¯ããããæ¢ãã¾ããããPHPããã¥ã¢ã«ãä¸çªè©³ããã¨æãã¾ãã
PHP: Imagick 画像ライブラリ - Manual
ãããPHPããã¥ã¢ã«ãAPIä¸è¦§ã®ã¿ã§è©³ããè§£èª¬ã¯æ¸ããã¦ããªãã®ã§å®éã«ä½¿ã£ã¦è©¦ãã¦ã¿ã¾ããã
ãªãµã¤ãºãã¦ã¿ã
APIãªã¹ããçºãã¦ã¿ãã¨ãªãµã¤ãºã«ä½¿ããããªã¡ã½ããã§ããä¸è¨5ã¤ã試ãã¦ã¿ã¾ããã
- Imagick::adaptiveResizeImage
- Imagick::cropImage
- Imagick::thumbnailImage
- Imagick::resizeImage
- Imagick::cropThumbnailImage
Imagick::adaptiveResizeImage
ã¡ã½ããã®èª¬æ
ãã¼ã¿ã«ä¾åããä¸è§æ¸¬éã«ãã¨ã¥ãã¦ç»åã®ãµã¤ãºã夿´ãã, ã¨è¨è¿°ããã¦ã¾ããä½ã®ãã¨ãããã弿°ã®columns, rowsã¯ããã¥ã¢ã«ãã¼ã¸ã®ãµã³ãã«ã³ã¼ããã顿¨ããã¨ãããããç¸¦å¹ , æ¨ªå¹ ã®æ§ã§ãã
bool Imagick::adaptiveResizeImage ( int $columns , int $rows )
http://jp2.php.net/manual/ja/function.imagick-adaptiveresizeimage.php
ãµã³ãã«ã³ã¼ã
300x300ã®æ£æ¹å½¢ã«ãªãµã¤ãºãã¦ãã¾ãã
<?php $image = new Imagick('/path/to/sample.jpg'); $image->adaptiveResizeImage(300,300); header('Content-type: image/jpeg'); echo $image;
çµæ
Fatal error: Call to undefined method Imagick::adaptiveResizeImage()
ã¡ã½ãããç¡ãã¿ããã§ããã¨ããããæ¬¡ã¸ï½
Imagick::cropImage
ã¡ã½ããã®èª¬æ
åãåãããç¸¦ã»æ¨ªå¹ ã¨å ç»åã®åãåãéå§ä½ç½®ã弿°ã«ã¨ã£ã¦ã¾ããããããcropã¡ã½ããã§ããã
bool Imagick::cropImage ( int $width , int $height , int $x , int $y )
http://jp2.php.net/manual/ja/function.imagick-cropimage.php
ãµã³ãã«ã³ã¼ã
300x300ã®å¤§ããã§ãå ç»åã®å·¦é (0,0)ããcropããã¦ã¿ã¾ããã
<?php $image = new Imagick('/path/to/sample.jpg'); $image->cropImage(300,300, 0, 0); header('Content-type: image/jpeg'); echo $image;
Imagick::thumbnailImage
ã¡ã½ããã®èª¬æ
fitãtrueã«ããã¨ãcolumnsãrowsã®å°ããæ¹ã®å¤ã«åããã¦ãµã ãã¤ã«ãçæãããæ¨¡æ§ã§ãã
bool Imagick::thumbnailImage ( int $columns , int $rows [, bool $fit ] )
ç»åã®ãµã¤ãºãæå®ãããã®ã«å¤æ´ããé¢é£ä»ããããããããã£ããã¹ã¦åé¤ãã¾ãã ã¦ã§ãä¸ã§ã®è¡¨ç¤ºã«é©ããå°ããªãµã ãã¤ã«ç»åã使ãã¾ãã 3 çªç®ã®ãã©ã¡ã¼ã¿ã« true ãæå®ããã¨ãcolumns ã rows ã«ããããã®æå¤§å¤ã使ç¨ãã¾ãã両æ¹ã®ãã©ã¡ã¼ã¿ãã ãããããã¾ã§ãããã¯æå®ãããã©ã¡ã¼ã¿ããå°ãããªãã¾ã§ç¸®å°ããã¾ãã
http://jp2.php.net/manual/ja/function.imagick-thumbnailimage.php
ãµã³ãã«ã³ã¼ã
300x300ã®å¤§ããã§ãfilãtrueã«ãã¦ãµã ãã¤ã«çæ
<?php $image = new Imagick('/path/to/sample.jpg'); $image->thumbnailImage(300, 300, true); header('Content-type: image/jpeg'); echo $image;
çµæ
å
ç»åã®æ¯çãç¶æããã¾ã¾ããµã ãã¤ã«çæãã¦ãã¾ãã大ããã¯ç»åã®æå¤§é·å´ï¼ãã®å ´åã¯æ¨ªå¹
ï¼ãåºæºã¨ãã¦ãããã300x225ã«ãªãµã¤ãºããã¦ãã¾ãã
Imagick::resizeImage
ã¡ã½ããã®èª¬æ
Imagick::thumbnailImage()ã¨ã®éãã¯filter, blurãæå®ã§ããæã®æ§ã§ãã
bool Imagick::resizeImage ( float $columns , float $rows , int $filter , float $blur )
æå®ãã大ããã¨ãã£ã«ã¿ã§ãç»åã®ãµã¤ãºã夿´ãã¾ãã
http://jp2.php.net/manual/ja/function.imagick-resizeimage.php
ãµã³ãã«ã³ã¼ã
ããã¥ã¢ã«ã®ãµã³ãã«ã³ã¼ããã¾ãã¦ãLANCZOSãã£ã«ã¿*2ã使ã£ã¦ã¿ã¾ãããã®ä»ã®å種ãã£ã«ã¿å®æ°ã¯マニュアルãåèãã¦ãã ãã
<?php $image = new Imagick('/path/to/sample.jpg'); $image->resizeImage(300, 300, imagick::FILTER_LANCZOS, 0); header('Content-type: image/jpeg'); echo $image;
Imagick::cropThumbnailImage
ã¡ã½ããã®èª¬æ
縮å°ãã¦ãããµã ãã¤ã«ãçæããã¡ã½ãããcenterããæå®ãã大ããã§åãåã£ã¦ããã¦ãæ§ã§ãã
bool Imagick::cropThumbnailImage ( int $width , int $height )
åºå®ãµã¤ãºã®ãµã ãã¤ã«ã使ãã¾ããã¾ãç»åã®ãµã¤ãºã縮å°ããæå®ããç¯å²ãä¸å¿ããåãåãã¾ãã
http://jp2.php.net/manual/ja/function.imagick-cropthumbnailimage.php
ãµã³ãã«ã³ã¼ã
300x300ã®ãµã ãã¤ã«ãçæãã¦ãã¾ãã
<?php $image = new Imagick('/path/to/sample.jpg'); $image->cropThumbnailImage(300, 300); header('Content-type: image/jpeg'); echo $image;
ã¾ã¨ã
ãã£ããã¨ç¨éãèããã¨ä¸ã¿ãããªæãã§ããããã
ã¡ã½ããå | ç¨é |
---|---|
Imagick::adaptiveResizeImage | ã¡ã½ãããåå¨ããªããããªã®ã§ä½¿ããªã |
Imagick::cropImage | å ç»åããåãåãç¯å²ã決ã¾ã£ã¦ãã |
Imagick::thumbnailImage | æ¯çç¶æããã¾ã¾ããµã ãã¤ã«ä½ããã |
Imagick::resizeImage | ãã£ã«ã¿ä½¿ã£ã¦ããµã ãã¤ã«ä½ããã |
Imagick::cropThumbnailImage | æ¯çç¶æããã¾ã¾ãä¸å¿ããä»»æã®ç¯å²ãåãåããã |
*1:VQ1005ã¨ãããã¤ã«ã¡ã©ã§æ®å½±ãããç»å
*2:aviutlã®ãã©ã°ã¤ã³ã§è¦ããã¨ããåå