• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • imageflip()

    (PHP 5 >= 5.5.0, PHP 7)

    Flips an image using a given mode

    说明

    imageflip(resource $image,int $mode): bool

    Flips the$imageimage using the given$mode.

    参数

    $image

    由图象创建函数(例如imagecreatetruecolor())返回的图象资源。

    $mode

    Flip mode, this can be one of the IMG_FLIP_* constants:

    ConstantMeaning
    IMG_FLIP_HORIZONTAL Flips the image horizontally.
    IMG_FLIP_VERTICAL Flips the image vertically.
    IMG_FLIP_BOTH Flips the image both horizontally and vertically.

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    范例

    Flips an image vertically

    This example uses the IMG_FLIP_VERTICAL constant.

    <?php
    // File
    $filename = 'phplogo.png';
    // Content type
    header('Content-type: image/png');
    // Load
    $im = imagecreatefrompng($filename);
    // Flip it vertically
    imageflip($im, IMG_FLIP_VERTICAL);
    // Output
    imagejpeg($im);
    imagedestroy($im);
    ?>
    

    以上例程的输出类似于:

    Flips the image horizontally

    This example uses the IMG_FLIP_HORIZONTAL constant.

    <?php
    // File
    $filename = 'phplogo.png';
    // Content type
    header('Content-type: image/png');
    // Load
    $im = imagecreatefrompng($filename);
    // Flip it horizontally
    imageflip($im, IMG_FLIP_HORIZONTAL);
    // Output
    imagejpeg($im);
    imagedestroy($im);
    ?>
    

    以上例程的输出类似于:

    If you're using PHP < 5.5 you can use this code to add the same functionality. If you pass the wrong $mode in it will silently fail. You might want to add your own error handling for this case.
    <?php
    if (!function_exists('imageflip')) {
     define('IMG_FLIP_HORIZONTAL', 0);
     define('IMG_FLIP_VERTICAL', 1);
     define('IMG_FLIP_BOTH', 2);
     function imageflip($image, $mode) {
      switch ($mode) {
       case IMG_FLIP_HORIZONTAL: {
        $max_x = imagesx($image) - 1;
        $half_x = $max_x / 2;
        $sy = imagesy($image);
        $temp_image = imageistruecolor($image)? imagecreatetruecolor(1, $sy): imagecreate(1, $sy);
        for ($x = 0; $x < $half_x; ++$x) {
         imagecopy($temp_image, $image, 0, 0, $x, 0, 1, $sy);
         imagecopy($image, $image, $x, 0, $max_x - $x, 0, 1, $sy);
         imagecopy($image, $temp_image, $max_x - $x, 0, 0, 0, 1, $sy);
        }
        break;
       }
       case IMG_FLIP_VERTICAL: {
        $sx = imagesx($image);
        $max_y = imagesy($image) - 1;
        $half_y = $max_y / 2;
        $temp_image = imageistruecolor($image)? imagecreatetruecolor($sx, 1): imagecreate($sx, 1);
        for ($y = 0; $y < $half_y; ++$y) {
         imagecopy($temp_image, $image, 0, 0, 0, $y, $sx, 1);
         imagecopy($image, $image, 0, $y, 0, $max_y - $y, $sx, 1);
         imagecopy($image, $temp_image, 0, $max_y - $y, 0, 0, $sx, 1);
        }
        break;
       }
       case IMG_FLIP_BOTH: {
        $sx = imagesx($image);
        $sy = imagesy($image);
        $temp_image = imagerotate($image, 180, 0);
        imagecopy($image, $temp_image, 0, 0, 0, 0, $sx, $sy);
        break;
       }
       default: {
        return;
       }
      }
      imagedestroy($temp_image);
     }
    }
    ?>
    

    上篇:imagefilter()

    下篇:imagefontheight()