--- /dev/null
+<?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);
+ }
+ }
+}
+
+?>