Index: temp/branches/mobile/data/include/image_converter.inc
===================================================================
--- temp/branches/mobile/data/include/image_converter.inc	(revision 11457)
+++ temp/branches/mobile/data/include/image_converter.inc	(revision 11458)
@@ -8,13 +8,13 @@
 	var $outputImageWidth;		// ÊÑ´¹¸å¤Î²èÁü¤Î²£Éý
 	var $outputImageHeight;		// ÊÑ´¹¸å¤Î²èÁü¤Î¹â¤µ
-	//var $outputImageFileSize;	// ÊÑ´¹¸å¤Î²èÁü¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º
+	var $outputImageFileSize;	// ÊÑ´¹¸å¤Î²èÁü¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º
 
 	// ¥³¥ó¥¹¥È¥é¥¯¥¿
 	function ImageConverter() {
-		$this->outputImageDir      = realpath(realpath(dirname( __FILE__)));
-		$this->outputImageType     = 'jpeg';
-		$this->outputImageWidth    = 100;
-		$this->outputImageHeight   = NULL;
-		//$this->outputImageFileSize = NULL;
+		$this->outputImageDir    = realpath(realpath(dirname(__FILE__)));
+		$this->outputImageType   = 'jpeg';
+		$this->outputImageWidth  = 320;
+		$this->outputImageHeight = NULL;
+		$this->outputFileSize    = 20000;
 	}
 
@@ -27,5 +27,5 @@
 		$inputImageHeight = $imagesize[1];
 		$inputImageType   = $imagesize[2];
-		$outputImageName  = base64_encode($inputImagePath . '_' . $this->outputImageWidth . '_' . $filestat['mtime']) . '.' . $this->outputImageType;
+		$outputImageName  = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType;
 		$outputImagePath  = $this->outputImageDir . '/' . $outputImageName;
 
@@ -63,46 +63,58 @@
 			}
 
-			// ¶õ¥Õ¥¡¥¤¥ëºîÀ®
-			$outputImage = ImageCreateTruecolor($this->outputImageWidth, $this->outputImageHeight);
-			ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth, $this->outputImageHeight, $inputImageWidth, $inputImageHeight);
+			$scale = 1.0;
+			$outputImagePathTemp = $outputImagePath . '.tmp-' . rand();
+			do {
+				// ¶õ¥Õ¥¡¥¤¥ëºîÀ®
+				$outputImage = ImageCreateTruecolor($this->outputImageWidth * $scale, $this->outputImageHeight * $scale);
+				ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight);
 
-			// ¥Õ¥¡¥¤¥ë½ÐÎÏ
-			switch($this->outputImageType) {
-			case 1:
-			case 'gif':
-				imagegif($outputImage, $outputImagePath);
-				break;
-			default:
-			case 2:
-			case 'jpg':
-			case 'jpeg':
-				imagejpeg($outputImage, $outputImagePath);
-				break;
-			case 3:
-			case 'png':
-				imagepng($outputImage, $outputImagePath);
-				break;
-			case 6:
-			case 'bmp':
-				imagewbmp($outputImage, $outputImagePath);
-				break;
-			}
+				// ¥Õ¥¡¥¤¥ë½ÐÎÏ
+
+				@unlink($outputImagePathTemp);
+
+				switch ($this->outputImageType) {
+				case 1:
+				case 'gif':
+					imagegif($outputImage, $outputImagePathTemp);
+					break;
+				default:
+				case 2:
+				case 'jpg':
+				case 'jpeg':
+					$quality = 75;
+					// É½¼¨²ÄÇ½¤Ê¥Õ¥¡¥¤¥ë¥µ¥¤¥º°Ê²¼¤Ë¤Ê¤ë¤Þ¤Ç¡¢10%¤º¤Ä¥¯¥ª¥ê¥Æ¥£¤òÄ´À°¤¹¤ë
+					do {
+						@unlink($outputImagePathTemp);
+						imagejpeg($outputImage, $outputImagePathTemp, $quality);
+						$quality -= 10;
+						clearstatcache();
+					} while (filesize($outputImagePathTemp) > $this->outputFileSize && $quality > 0);
+					break;
+				case 3:
+				case 'png':
+					imagepng($outputImage, $outputImagePathTemp);
+					break;
+				case 6:
+				case 'bmp':
+					imagewbmp($outputImage, $outputImagePathTemp);
+					break;
+				}
+
+				// ¥á¥â¥ê³«Êü
+				imagedestroy($outputImage);
+
+				$scale -= 0.1;
+				clearstatcache();
+			} while (filesize($outputImagePathTemp) > $this->outputFileSize && $scale >= 0.5);
+
+			rename($outputImagePathTemp, $outputImagePath);
 
 			// ¥á¥â¥ê³«Êü
 			imagedestroy($tempImage);
-			imagedestroy($outputImage);
 
 			$info['convert'] = TRUE;
 		}
 
-		/*
-		$info['inputImageWidth']   = $inputImageWidth;
-		$info['inputImageHeight']  = $inputImageHeight;
-		$info['inputImageType']    = $inputImageType;
-		$info['inputImagePath']    = $inputImagePath;
-		$info['outputImageWidth']  = $this->outputImageWidth;
-		$info['outputImageHeight'] = $this->outputImageHeight;
-		$info['outputImageType']   = $this->outputImageType;
-		*/
 		$info['outputImagePath']  = $outputImagePath;
 		$info['outputImageName']  = $outputImageName;
@@ -112,7 +124,8 @@
 
 	// Setter
-	function setOutputDir($outputDir)   { $this->outputImageDir    = $outputDir;  }
-	function setImageType($imageType)   { $this->outputImageType   = $imageType;  }
-	function setImageWidth($imageWidth) { $this->outputImageWidth  = $imageWidth; }
+	function setOutputDir($outputDir)   { $this->outputImageDir   = $outputDir;  }
+	function setImageType($imageType)   { $this->outputImageType  = $imageType;  }
+	function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; }
+	function setFileSize($fileSize)     { $this->outputFileSize   = $fileSize;   }
 	// function setImageHeight($imageHeight) { $this->outputImageHeight = $imageHeight; }
 
Index: temp/branches/mobile/data/class/GC_MobileImage.php
===================================================================
--- temp/branches/mobile/data/class/GC_MobileImage.php	(revision 11457)
+++ temp/branches/mobile/data/class/GC_MobileImage.php	(revision 11458)
@@ -29,5 +29,5 @@
 			// HTMLÃæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë
 			$pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
-			preg_match_all($pattern, $buffer, $images);
+			$result = preg_match_all($pattern, $buffer, $images);
 
 			// Ã¼Ëö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë
@@ -35,9 +35,22 @@
 			while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
 				if ($data[1] == $model) {
-					$imageType  = $data[6];
-					$imageWidth = $data[5];
+					$cacheSize     = $data[2];
+					$imageFileSize = $data[7];
+					$imageType     = $data[6];
+					$imageWidth    = $data[5];
 				}
 			}
 			fclose($fp);
+
+			// docomo¤Èsoftbank¤Î¾ì¹ç¤Ï²èÁü¥Õ¥¡¥¤¥ë°ì¤Ä¤ËÍøÍÑ²ÄÇ½¤Ê¥µ¥¤¥º¤Î¾å¸Â¤ò·×»»¤¹¤ë
+			// au¤ÏHTML¤Îbyte¿ô¾å¸Â¤Ë²èÁü¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬´Þ¤Þ¤ì¤Ê¤¤¤Î¤ÇimageFileSize¤Î¤Þ¤Þ¡£
+			if ($carrier == "docomo" or $carrier == "softbank") {
+				// ·×»»¼°¡§(ÍøÍÑÃ¼Ëö¤ÇÉ½¼¨²ÄÇ½¤Êcache¥µ¥¤¥º - HTML¤Î¥Ð¥¤¥È¿ô - ÊÑ´¹¸å¤Î²èÁüÌ¾¤Î¥Ð¥¤¥È¿ô(ÌÜ°ÂÃÍ) ) / HTMLÃæ¤Î²èÁü¿ô
+				$temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result;
+				// ·×»»·ë²Ì¤¬Ã¼Ëö¤ÎÉ½¼¨²ÄÇ½¥Õ¥¡¥¤¥ë¥µ¥¤¥º¾å¸Â¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï·×»»·ë²Ì¤ÎÃÍ¤òÍ­¸ú¤Ë¤¹¤ë
+				if ($temp_imagefilesize < $imageFileSize) {
+					$imageFileSize = $temp_imagefilesize;
+				}
+			}
 
 			// ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
@@ -46,4 +59,5 @@
 			$imageConverter->setImageType($imageType);
 			$imageConverter->setImageWidth($imageWidth);
+			$imageConverter->setFileSize($imageFileSize);
 
 			// HTMLÃæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë
