OSDN Git Service

add ACS webapp, sql, htdocs
[acs/acs.git] / webapp / lib / class / ACSImageMagickWrapper.class.php
diff --git a/webapp/lib/class/ACSImageMagickWrapper.class.php b/webapp/lib/class/ACSImageMagickWrapper.class.php
new file mode 100644 (file)
index 0000000..1ad7fb0
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+// $Id: ACSImageMagickWrapper.class.php,v 1.5 2006/03/30 04:38:01 w-ota Exp $
+
+// define
+define('ACS_IMAGE_MAGICK_CONVERT', '/usr/bin/convert');
+define('ACS_THUMBNAIL_WIDTH', 76);  // ¥µ¥à¥Í¥¤¥ë¤ÎºÇÂç²£Éý
+define('ACS_THUMBNAIL_HEIGHT', 76); // ¥µ¥à¥Í¥¤¥ë¤ÎºÇÂç½ÄÉý
+
+class ACSImageMagickWrapper
+{
+       // ²èÁü¥Õ¥¡¥¤¥ë̾
+       var $file_name;
+       // ²èÁü¤Î²£Éý
+       var $width;
+       // ²èÁü¤Î½ÄÉý
+       var $height;
+
+       // ¥³¥ó¥¹¥È¥é¥¯¥¿
+       function ACSImageMagickWrapper($file_name) {
+               $image_info_array = @getimagesize($file_name);
+               if ($image_info_array) {
+                       $this->file_name = $file_name;
+                       $this->width = $image_info_array[0];
+                       $this->height = $image_info_array[1];
+               }
+       }
+
+       /*
+        * ²èÁü¤òºîÀ®¤¹¤ë
+        *
+        * @param $new_file_name ºîÀ®¤¹¤ë¥Õ¥¡¥¤¥ë̾
+        * @param $image_type    ²èÁü¥Õ¥¡¥¤¥ë¥¿¥¤¥×
+        * @param $max_width     ºÇÂç²£Éý
+        * @param $max_height    ºÇÂç½ÄÉý
+        */
+       function convert ($new_file_name, $image_type, $max_width = ACS_THUMBNAIL_WIDTH, $max_height = ACS_THUMBNAIL_HEIGHT) {
+               $tmp_file_name = $this->file_name . '.tmp';
+               if ($image_type) {
+                       $tmp_file_name .= '.' . $image_type;
+               }
+
+               $cmd  = ACS_IMAGE_MAGICK_CONVERT;
+               // ¸µ²èÁü¤¬½Ä²£Éý¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤±¤ì¤Ð¥ê¥µ¥¤¥º¤¹¤ë
+               if ($this->width > $max_width || $this->height > $max_height) {
+                       $cmd .= " -resize {$max_width}x{$max_height}";
+               }
+               $cmd .= " -quality 100";
+               $cmd .= " +profile '*'";
+               $cmd .= " " . $this->file_name;
+               $cmd .= " " . $tmp_file_name;
+
+               // convert¥³¥Þ¥ó¥É¼Â¹Ô
+               exec($cmd);
+               // ¥Õ¥¡¥¤¥ë̾Êѹ¹
+               rename($tmp_file_name, $new_file_name);
+
+               return basename($new_file_name);
+       }
+
+       /**
+        * JPEG ¤Î¥µ¥à¥Í¥¤¥ë²èÁü¤òºîÀ®¤¹¤ë
+        *
+        * @param $new_file_name ºîÀ®¤¹¤ë¥Õ¥¡¥¤¥ë̾
+        * @param $max_width     ºÇÂç²£Éý
+        * @param $max_height    ºÇÂç½ÄÉý
+        */
+       function make_jpg_thumbnail ($new_file_name, $max_width = ACS_THUMBNAIL_WIDTH, $max_height = ACS_THUMBNAIL_HEIGHT) {
+               ACSImageMagickWrapper::convert($new_file_name, 'jpg', $max_width, $max_height);
+       }
+
+       /**
+        * »ØÄꥵ¥¤¥º°Ê²¼¤Î¥µ¥¤¥º¤Ë½Ì¾®¤¹¤ë
+        *
+        * @param $max_width  ºÇÂç²£Éý
+        * @param $max_height ºÇÂç½ÄÉý
+        */
+       function reduce_image ($max_width = ACS_THUMBNAIL_WIDTH, $max_height = ACS_THUMBNAIL_HEIGHT) {
+               if ($this->width > $max_width || $this->height > $max_height) {
+                       ACSImageMagickWrapper::convert($this->file_name, '', $max_width, $max_height);
+               }
+       }
+}
+
+?>