當前位置: 首頁>>代碼示例>>PHP>>正文


PHP phpthumb_functions::ImageResizeFunction方法代碼示例

本文整理匯總了PHP中phpthumb_functions::ImageResizeFunction方法的典型用法代碼示例。如果您正苦於以下問題:PHP phpthumb_functions::ImageResizeFunction方法的具體用法?PHP phpthumb_functions::ImageResizeFunction怎麽用?PHP phpthumb_functions::ImageResizeFunction使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在phpthumb_functions的用法示例。


在下文中一共展示了phpthumb_functions::ImageResizeFunction方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: ImageBorder

 function ImageBorder(&$gdimg, $border_width, $radius_x, $radius_y, $hexcolor_border)
 {
     $border_width = $border_width ? $border_width : 1;
     $radius_x = $radius_x ? $radius_x : 0;
     $radius_y = $radius_y ? $radius_y : 0;
     $output_width = ImageSX($gdimg);
     $output_height = ImageSY($gdimg);
     list($new_width, $new_height) = phpthumb_functions::ProportionalResize($output_width, $output_height, $output_width - max($border_width * 2, $radius_x), $output_height - max($border_width * 2, $radius_y));
     $offset_x = $radius_x ? $output_width - $new_width - $radius_x : 0;
     $offset_y = $radius_y ? $output_height - $new_height - $radius_y : 0;
     if ($gd_border_canvas = phpthumb_functions::ImageCreateFunction($output_width, $output_height)) {
         if (phpthumb_functions::version_compare_replacement(phpversion(), '4.3.2', '>=')) {
             ImageSaveAlpha($gd_border_canvas, true);
         }
         ImageAlphaBlending($gd_border_canvas, false);
         $color_background = phpthumb_functions::ImageColorAllocateAlphaSafe($gd_border_canvas, 255, 255, 255, 127);
         ImageFilledRectangle($gd_border_canvas, 0, 0, $output_width, $output_height, $color_background);
         $color_border = phpthumb_functions::ImageHexColorAllocate($gd_border_canvas, phpthumb_functions::IsHexColor($hexcolor_border) ? $hexcolor_border : '000000');
         for ($i = 0; $i < $border_width; $i++) {
             ImageLine($gd_border_canvas, floor($offset_x / 2) + $radius_x, $i, $output_width - $radius_x - ceil($offset_x / 2), $i, $color_border);
             // top
             ImageLine($gd_border_canvas, floor($offset_x / 2) + $radius_x, $output_height - 1 - $i, $output_width - $radius_x - ceil($offset_x / 2), $output_height - 1 - $i, $color_border);
             // bottom
             ImageLine($gd_border_canvas, floor($offset_x / 2) + $i, $radius_y, floor($offset_x / 2) + $i, $output_height - $radius_y, $color_border);
             // left
             ImageLine($gd_border_canvas, $output_width - 1 - $i - ceil($offset_x / 2), $radius_y, $output_width - 1 - $i - ceil($offset_x / 2), $output_height - $radius_y, $color_border);
             // right
         }
         if ($radius_x && $radius_y) {
             // PHP bug: ImageArc() with thicknesses > 1 give bad/undesirable/unpredicatable results
             // Solution: Draw multiple 1px arcs side-by-side.
             // Problem: parallel arcs give strange/ugly antialiasing problems
             // Solution: draw non-parallel arcs, from one side of the line thickness at the start angle
             //   to the opposite edge of the line thickness at the terminating angle
             for ($thickness_offset = 0; $thickness_offset < $border_width; $thickness_offset++) {
                 ImageArc($gd_border_canvas, floor($offset_x / 2) + 1 + $radius_x, $thickness_offset - 1 + $radius_y, $radius_x * 2, $radius_y * 2, 180, 270, $color_border);
                 // top-left
                 ImageArc($gd_border_canvas, $output_width - $radius_x - 1 - ceil($offset_x / 2), $thickness_offset - 1 + $radius_y, $radius_x * 2, $radius_y * 2, 270, 360, $color_border);
                 // top-right
                 ImageArc($gd_border_canvas, $output_width - $radius_x - 1 - ceil($offset_x / 2), $output_height - $thickness_offset - $radius_y, $radius_x * 2, $radius_y * 2, 0, 90, $color_border);
                 // bottom-right
                 ImageArc($gd_border_canvas, floor($offset_x / 2) + 1 + $radius_x, $output_height - $thickness_offset - $radius_y, $radius_x * 2, $radius_y * 2, 90, 180, $color_border);
                 // bottom-left
             }
             if ($border_width > 1) {
                 for ($thickness_offset = 0; $thickness_offset < $border_width; $thickness_offset++) {
                     ImageArc($gd_border_canvas, floor($offset_x / 2) + $thickness_offset + $radius_x, $radius_y, $radius_x * 2, $radius_y * 2, 180, 270, $color_border);
                     // top-left
                     ImageArc($gd_border_canvas, $output_width - $thickness_offset - $radius_x - 1 - ceil($offset_x / 2), $radius_y, $radius_x * 2, $radius_y * 2, 270, 360, $color_border);
                     // top-right
                     ImageArc($gd_border_canvas, $output_width - $thickness_offset - $radius_x - 1 - ceil($offset_x / 2), $output_height - $radius_y, $radius_x * 2, $radius_y * 2, 0, 90, $color_border);
                     // bottom-right
                     ImageArc($gd_border_canvas, floor($offset_x / 2) + $thickness_offset + $radius_x, $output_height - $radius_y, $radius_x * 2, $radius_y * 2, 90, 180, $color_border);
                     // bottom-left
                 }
             }
         }
         phpthumb_functions::ImageResizeFunction($gd_border_canvas, $gdimg, floor(($output_width - $new_width) / 2), round(($output_height - $new_height) / 2), 0, 0, $new_width, $new_height, $output_width, $output_height);
         ImageDestroy($gdimg);
         $gdimg = phpthumb_functions::ImageCreateFunction($output_width, $output_height);
         if (phpthumb_functions::version_compare_replacement(phpversion(), '4.3.2', '>=')) {
             ImageSaveAlpha($gdimg, true);
         }
         ImageAlphaBlending($gdimg, false);
         $gdimg_color_background = phpthumb_functions::ImageColorAllocateAlphaSafe($gdimg, 255, 255, 255, 127);
         ImageFilledRectangle($gdimg, 0, 0, $output_width, $output_height, $gdimg_color_background);
         ImageCopy($gdimg, $gd_border_canvas, 0, 0, 0, 0, $output_width, $output_height);
         //$gdimg = $gd_border_canvas;
         ImageDestroy($gd_border_canvas);
         return true;
     } else {
         $this->DebugMessage('FAILED: $gd_border_canvas = phpthumb_functions::ImageCreateFunction(' . $output_width . ', ' . $output_height . ')', __FILE__, __LINE__);
     }
     return false;
 }
開發者ID:philippejadin,項目名稱:thinkedit,代碼行數:75,代碼來源:phpthumb.filters.php

示例2: ApplyFilters


//.........這裏部分代碼省略.........
                     phpthumb_filters::RoundedImageCorners($this->gdimg_output, $radius_x, $radius_y);
                     break;
                 case 'bord':
                     @(list($border_width, $radius_x, $radius_y, $hexcolor_border) = explode('|', $parameter));
                     $this->is_alpha = true;
                     phpthumb_filters::ImageBorder($this->gdimg_output, $border_width, $radius_x, $radius_y, $hexcolor_border);
                     break;
                 case 'over':
                     @(list($filename, $underlay, $margin, $opacity) = explode('|', $parameter));
                     $underlay = (bool) ($underlay ? $underlay : false);
                     $margin = strlen($margin) > 0 ? $margin : ($underlay ? 0.1 : 0.0);
                     $opacity = strlen($opacity) > 0 ? $opacity : 100;
                     if ($margin > 0 && $margin < 1) {
                         $margin = min(0.499, $margin);
                     } elseif ($margin > -1 && $margin < 0) {
                         $margin = max(-0.499, $margin);
                     }
                     $filename = $this->ResolveFilenameToAbsolute($filename);
                     if (@is_readable($filename) && ($fp_watermark = @fopen($filename, 'rb'))) {
                         $WatermarkImageData = fread($fp_watermark, filesize($filename));
                         fclose($fp_watermark);
                         if ($img_watermark = $this->ImageCreateFromStringReplacement($WatermarkImageData)) {
                             if ($margin < 1) {
                                 $resized_x = max(1, ImageSX($this->gdimg_output) - round(2 * (ImageSX($this->gdimg_output) * $margin)));
                                 $resized_y = max(1, ImageSY($this->gdimg_output) - round(2 * (ImageSY($this->gdimg_output) * $margin)));
                             } else {
                                 $resized_x = max(1, ImageSX($this->gdimg_output) - round(2 * $margin));
                                 $resized_y = max(1, ImageSY($this->gdimg_output) - round(2 * $margin));
                             }
                             if ($underlay) {
                                 if ($img_watermark_resized = phpthumb_functions::ImageCreateFunction(ImageSX($this->gdimg_output), ImageSY($this->gdimg_output))) {
                                     ImageAlphaBlending($img_watermark_resized, false);
                                     ImageSaveAlpha($img_watermark_resized, true);
                                     phpthumb_functions::ImageResizeFunction($img_watermark_resized, $img_watermark, 0, 0, 0, 0, ImageSX($img_watermark_resized), ImageSY($img_watermark_resized), ImageSX($img_watermark), ImageSY($img_watermark));
                                     if ($img_source_resized = phpthumb_functions::ImageCreateFunction($resized_x, $resized_y)) {
                                         ImageAlphaBlending($img_source_resized, false);
                                         ImageSaveAlpha($img_source_resized, true);
                                         phpthumb_functions::ImageResizeFunction($img_source_resized, $this->gdimg_output, 0, 0, 0, 0, ImageSX($img_source_resized), ImageSY($img_source_resized), ImageSX($this->gdimg_output), ImageSY($this->gdimg_output));
                                         phpthumb_filters::WatermarkOverlay($img_watermark_resized, $img_source_resized, 'C', $opacity, $margin);
                                         ImageCopy($this->gdimg_output, $img_watermark_resized, 0, 0, 0, 0, ImageSX($this->gdimg_output), ImageSY($this->gdimg_output));
                                     } else {
                                         $this->DebugMessage('phpthumb_functions::ImageCreateFunction(' . $resized_x . ', ' . $resized_y . ')', __FILE__, __LINE__);
                                     }
                                     ImageDestroy($img_watermark_resized);
                                 } else {
                                     $this->DebugMessage('phpthumb_functions::ImageCreateFunction(' . ImageSX($this->gdimg_output) . ', ' . ImageSY($this->gdimg_output) . ')', __FILE__, __LINE__);
                                 }
                             } else {
                                 // overlay
                                 if ($img_watermark_resized = phpthumb_functions::ImageCreateFunction($resized_x, $resized_y)) {
                                     ImageAlphaBlending($img_watermark_resized, false);
                                     ImageSaveAlpha($img_watermark_resized, true);
                                     phpthumb_functions::ImageResizeFunction($img_watermark_resized, $img_watermark, 0, 0, 0, 0, ImageSX($img_watermark_resized), ImageSY($img_watermark_resized), ImageSX($img_watermark), ImageSY($img_watermark));
                                     phpthumb_filters::WatermarkOverlay($this->gdimg_output, $img_watermark_resized, 'C', $opacity, $margin);
                                     ImageDestroy($img_watermark_resized);
                                 } else {
                                     $this->DebugMessage('phpthumb_functions::ImageCreateFunction(' . $resized_x . ', ' . $resized_y . ')', __FILE__, __LINE__);
                                 }
                             }
                             ImageDestroy($img_watermark);
                         } else {
                             $this->DebugMessage('ImageCreateFromStringReplacement() failed for "' . $filename . '"', __FILE__, __LINE__);
                         }
                     } else {
                         $this->DebugMessage('Cannot open overlay file "' . $filename . '"', __FILE__, __LINE__);
                     }
開發者ID:alanhaggai,項目名稱:plogger,代碼行數:67,代碼來源:phpthumb.class.php


注:本文中的phpthumb_functions::ImageResizeFunction方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。