Changeset 11458 for temp/branches/mobile
- Timestamp:
- 2007/02/25 22:37:12 (19 years ago)
- Location:
- temp/branches/mobile/data
- Files:
-
- 2 edited
-
class/GC_MobileImage.php (modified) (3 diffs)
-
include/image_converter.inc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
temp/branches/mobile/data/class/GC_MobileImage.php
r11457 r11458 29 29 // HTMLÃæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë 30 30 $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i'; 31 preg_match_all($pattern, $buffer, $images);31 $result = preg_match_all($pattern, $buffer, $images); 32 32 33 33 // üËö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë … … 35 35 while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { 36 36 if ($data[1] == $model) { 37 $imageType = $data[6]; 38 $imageWidth = $data[5]; 37 $cacheSize = $data[2]; 38 $imageFileSize = $data[7]; 39 $imageType = $data[6]; 40 $imageWidth = $data[5]; 39 41 } 40 42 } 41 43 fclose($fp); 44 45 // docomo¤Èsoftbank¤Î¾ì¹ç¤Ï²èÁü¥Õ¥¡¥¤¥ë°ì¤Ä¤ËÍøÍѲÄǽ¤Ê¥µ¥¤¥º¤Î¾å¸Â¤ò·×»»¤¹¤ë 46 // au¤ÏHTML¤Îbyte¿ô¾å¸Â¤Ë²èÁü¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬´Þ¤Þ¤ì¤Ê¤¤¤Î¤ÇimageFileSize¤Î¤Þ¤Þ¡£ 47 if ($carrier == "docomo" or $carrier == "softbank") { 48 // ·×»»¼°¡§(ÍøÍÑüËö¤Çɽ¼¨²Äǽ¤Êcache¥µ¥¤¥º - HTML¤Î¥Ð¥¤¥È¿ô - ÊÑ´¹¸å¤Î²èÁü̾¤Î¥Ð¥¤¥È¿ô(ÌܰÂÃÍ) ) / HTMLÃæ¤Î²èÁü¿ô 49 $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 50 // ·×»»·ë²Ì¤¬Ã¼Ëö¤Îɽ¼¨²Äǽ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¾å¸Â¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï·×»»·ë²Ì¤ÎÃͤò͸ú¤Ë¤¹¤ë 51 if ($temp_imagefilesize < $imageFileSize) { 52 $imageFileSize = $temp_imagefilesize; 53 } 54 } 42 55 43 56 // ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë … … 46 59 $imageConverter->setImageType($imageType); 47 60 $imageConverter->setImageWidth($imageWidth); 61 $imageConverter->setFileSize($imageFileSize); 48 62 49 63 // HTMLÃæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë -
temp/branches/mobile/data/include/image_converter.inc
r11457 r11458 8 8 var $outputImageWidth; // ÊÑ´¹¸å¤Î²èÁü¤Î²£Éý 9 9 var $outputImageHeight; // ÊÑ´¹¸å¤Î²èÁü¤Î¹â¤µ 10 //var $outputImageFileSize; // ÊÑ´¹¸å¤Î²èÁü¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º10 var $outputImageFileSize; // ÊÑ´¹¸å¤Î²èÁü¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º 11 11 12 12 // ¥³¥ó¥¹¥È¥é¥¯¥¿ 13 13 function ImageConverter() { 14 $this->outputImageDir = realpath(realpath(dirname(__FILE__)));15 $this->outputImageType = 'jpeg';16 $this->outputImageWidth = 100;17 $this->outputImageHeight = NULL;18 //$this->outputImageFileSize = NULL;14 $this->outputImageDir = realpath(realpath(dirname(__FILE__))); 15 $this->outputImageType = 'jpeg'; 16 $this->outputImageWidth = 320; 17 $this->outputImageHeight = NULL; 18 $this->outputFileSize = 20000; 19 19 } 20 20 … … 27 27 $inputImageHeight = $imagesize[1]; 28 28 $inputImageType = $imagesize[2]; 29 $outputImageName = base64_encode($inputImagePath . '_' . $this->outputImageWidth. '_' . $filestat['mtime']) . '.' . $this->outputImageType;29 $outputImageName = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType; 30 30 $outputImagePath = $this->outputImageDir . '/' . $outputImageName; 31 31 … … 63 63 } 64 64 65 // ¶õ¥Õ¥¡¥¤¥ëºîÀ® 66 $outputImage = ImageCreateTruecolor($this->outputImageWidth, $this->outputImageHeight); 67 ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth, $this->outputImageHeight, $inputImageWidth, $inputImageHeight); 65 $scale = 1.0; 66 $outputImagePathTemp = $outputImagePath . '.tmp-' . rand(); 67 do { 68 // ¶õ¥Õ¥¡¥¤¥ëºîÀ® 69 $outputImage = ImageCreateTruecolor($this->outputImageWidth * $scale, $this->outputImageHeight * $scale); 70 ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight); 68 71 69 // ¥Õ¥¡¥¤¥ë½ÐÎÏ 70 switch($this->outputImageType) { 71 case 1: 72 case 'gif': 73 imagegif($outputImage, $outputImagePath); 74 break; 75 default: 76 case 2: 77 case 'jpg': 78 case 'jpeg': 79 imagejpeg($outputImage, $outputImagePath); 80 break; 81 case 3: 82 case 'png': 83 imagepng($outputImage, $outputImagePath); 84 break; 85 case 6: 86 case 'bmp': 87 imagewbmp($outputImage, $outputImagePath); 88 break; 89 } 72 // ¥Õ¥¡¥¤¥ë½ÐÎÏ 73 74 @unlink($outputImagePathTemp); 75 76 switch ($this->outputImageType) { 77 case 1: 78 case 'gif': 79 imagegif($outputImage, $outputImagePathTemp); 80 break; 81 default: 82 case 2: 83 case 'jpg': 84 case 'jpeg': 85 $quality = 75; 86 // ɽ¼¨²Äǽ¤Ê¥Õ¥¡¥¤¥ë¥µ¥¤¥º°Ê²¼¤Ë¤Ê¤ë¤Þ¤Ç¡¢10%¤º¤Ä¥¯¥ª¥ê¥Æ¥£¤òÄ´À°¤¹¤ë 87 do { 88 @unlink($outputImagePathTemp); 89 imagejpeg($outputImage, $outputImagePathTemp, $quality); 90 $quality -= 10; 91 clearstatcache(); 92 } while (filesize($outputImagePathTemp) > $this->outputFileSize && $quality > 0); 93 break; 94 case 3: 95 case 'png': 96 imagepng($outputImage, $outputImagePathTemp); 97 break; 98 case 6: 99 case 'bmp': 100 imagewbmp($outputImage, $outputImagePathTemp); 101 break; 102 } 103 104 // ¥á¥â¥ê³«Êü 105 imagedestroy($outputImage); 106 107 $scale -= 0.1; 108 clearstatcache(); 109 } while (filesize($outputImagePathTemp) > $this->outputFileSize && $scale >= 0.5); 110 111 rename($outputImagePathTemp, $outputImagePath); 90 112 91 113 // ¥á¥â¥ê³«Êü 92 114 imagedestroy($tempImage); 93 imagedestroy($outputImage);94 115 95 116 $info['convert'] = TRUE; 96 117 } 97 118 98 /*99 $info['inputImageWidth'] = $inputImageWidth;100 $info['inputImageHeight'] = $inputImageHeight;101 $info['inputImageType'] = $inputImageType;102 $info['inputImagePath'] = $inputImagePath;103 $info['outputImageWidth'] = $this->outputImageWidth;104 $info['outputImageHeight'] = $this->outputImageHeight;105 $info['outputImageType'] = $this->outputImageType;106 */107 119 $info['outputImagePath'] = $outputImagePath; 108 120 $info['outputImageName'] = $outputImageName; … … 112 124 113 125 // Setter 114 function setOutputDir($outputDir) { $this->outputImageDir = $outputDir; } 115 function setImageType($imageType) { $this->outputImageType = $imageType; } 116 function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; } 126 function setOutputDir($outputDir) { $this->outputImageDir = $outputDir; } 127 function setImageType($imageType) { $this->outputImageType = $imageType; } 128 function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; } 129 function setFileSize($fileSize) { $this->outputFileSize = $fileSize; } 117 130 // function setImageHeight($imageHeight) { $this->outputImageHeight = $imageHeight; } 118 131
Note: See TracChangeset
for help on using the changeset viewer.
