Changeset 11458 for temp/branches/mobile/data/include/image_converter.inc
- Timestamp:
- 2007/02/25 22:37:12 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 16 $this->outputImageWidth = 100;17 $this->outputImageHeight 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.