Changeset 21026
- Timestamp:
- 2011/07/08 18:51:41 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_11-dev/data/include/image_converter.inc
r20973 r21026 28 28 $inputImageType = $imagesize[2]; 29 29 30 // GIF 画像は縮小後も GIF 画像で出力する。旧機種対応などで、機種用の画像形式に変換したい場合、この処理は削除する。 31 if ($inputImageType == IMAGETYPE_GIF) { 32 $this->outputImageType = 'gif'; 33 } 34 35 $outputImageName = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType; 30 // 今回実行用の一時変数をセット 31 $output_image_width = $this->outputImageWidth; 32 $output_image_height = is_null($this->outputImageHeight) 33 ? $inputImageHeight * ($output_image_width / $inputImageWidth) 34 : $this->outputImageHeight; 35 // GIF 画像は縮小後も GIF 画像で出力する。旧機種対応などで、機種用の画像形式に変換したい場合、expr3 に固定する。 36 $output_image_type = $inputImageType == IMAGETYPE_GIF ? 'gif' : $this->outputImageType; 37 38 $outputImageName = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $output_image_type; 36 39 $outputImagePath = $this->outputImageDir . '/' . $outputImageName; 37 40 38 if (is_null($this->outputImageHeight)) { 39 $height_was_null = TRUE; 40 $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 41 if ($inputImageWidth <= $output_image_width) { 42 if ($inputImageHeight <= $output_image_height) { 43 $output_image_width = $inputImageWidth; 44 $output_image_height = $inputImageHeight; 45 } else { 46 $output_image_width = $inputImageWidth * ($output_image_height / $inputImageHeight); 47 } 41 48 } else { 42 $height_was_null = FALSE; 43 } 44 if ($inputImageWidth <= $this->outputImageWidth) { 45 if ($inputImageHeight <= $this->outputImageHeight) { 46 $this->outputImageWidth = $inputImageWidth; 47 $this->outputImageHeight = $inputImageHeight; 49 if ($inputImageHeight <= $output_image_height) { 50 $output_image_height = $inputImageHeight * ($output_image_width / $inputImageWidth); 48 51 } else { 49 $this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight); 50 } 51 } else { 52 if ($inputImageHeight <= $this->outputImageHeight) { 53 $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 54 } else { 55 if ($this->outputImageWidth / $inputImageWidth < $this->outputImageHeight / $inputImageHeight) { 56 $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 52 if ($output_image_width / $inputImageWidth < $output_image_height / $inputImageHeight) { 53 $output_image_height = $inputImageHeight * ($output_image_width / $inputImageWidth); 57 54 } else { 58 $ this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight);55 $output_image_width = $inputImageWidth * ($output_image_height / $inputImageHeight); 59 56 } 60 57 } … … 96 93 do { 97 94 // 空ファイル作成 98 if ($ this->outputImageType == 'gif') {95 if ($output_image_type == 'gif') { 99 96 // 縮小時のノイズ防止のためインデックスカラーで処理する。特に透過色を扱う上で重要。 100 $outputImage = ImageCreate($ this->outputImageWidth * $scale, $this->outputImageHeight * $scale);97 $outputImage = ImageCreate($output_image_width * $scale, $output_image_height * $scale); 101 98 } else { 102 $outputImage = ImageCreateTruecolor($ this->outputImageWidth * $scale, $this->outputImageHeight * $scale);103 } 104 105 ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $ this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight);99 $outputImage = ImageCreateTruecolor($output_image_width * $scale, $output_image_height * $scale); 100 } 101 102 ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $output_image_width * $scale, $output_image_height * $scale, $inputImageWidth, $inputImageHeight); 106 103 107 104 // ファイル出力 … … 109 106 @unlink($outputImagePathTemp); 110 107 111 switch ($ this->outputImageType) {108 switch ($output_image_type) { 112 109 case 'gif': 113 110 if (!empty($arrTransparentColor)) { … … 155 152 156 153 $info['convert'] = TRUE; 157 }158 159 if ($height_was_null) {160 $this->outputImageHeigh = NULL;161 154 } 162 155
Note: See TracChangeset
for help on using the changeset viewer.