> 백엔드 개발 > PHP 튜토리얼 > PHP实现图片不变型裁剪及图片按比例裁剪的方法,_PHP教程

PHP实现图片不变型裁剪及图片按比例裁剪的方法,_PHP教程

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-12 09:00:48
원래의
1015명이 탐색했습니다.

PHP实现图片不变型裁剪及图片按比例裁剪的方法,

本文实例讲述了PHP实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考,具体如下:

图片不变型裁剪

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

<&#63;php

/**

 * imageCropper

 * @param string $source_path

 * @param string $target_width

 * @param string $target_height

 */

function imageCropper($source_path, $target_width, $target_height){

  $source_info  = getimagesize($source_path);

  $source_width = $source_info[0];

  $source_height = $source_info[1];

  $source_mime  = $source_info['mime'];

  $source_ratio = $source_height / $source_width;

  $target_ratio = $target_height / $target_width;

  if ($source_ratio > $target_ratio){

    // image-to-height

    $cropped_width = $source_width;

    $cropped_height = $source_width * $target_ratio;

    $source_x = 0;

    $source_y = ($source_height - $cropped_height) / 2;

  }elseif ($source_ratio < $target_ratio){

    //image-to-widht

    $cropped_width = $source_height / $target_ratio;

    $cropped_height = $source_height;

    $source_x = ($source_width - $cropped_width) / 2;

    $source_y = 0;

  }else{

    //image-size-ok

    $cropped_width = $source_width;

    $cropped_height = $source_height;

    $source_x = 0;

    $source_y = 0;

  }

  switch ($source_mime){

    case 'image/gif':

      $source_image = imagecreatefromgif($source_path);

      break;

    case 'image/jpeg':

      $source_image = imagecreatefromjpeg($source_path);

      break;

    case 'image/png':

      $source_image = imagecreatefrompng($source_path);

      break;

    default:

      return ;

      break;

  }

  $target_image = imagecreatetruecolor($target_width, $target_height);

  $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);

  // copy

  imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);

  // zoom

  imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);

  header('Content-Type: image/jpeg');

  imagejpeg($target_image);

  imagedestroy($source_image);

  imagedestroy($target_image);

  imagedestroy($cropped_image);

}

$filename = "8fcb7a0831b79c61.jpg";

imageCropper($filename,200,200);

&#63;>

로그인 후 복사

图片按比例裁剪

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

<&#63;php

/**

 * imageZoom

 * @param string $file

 * @param double $zoom

 */

function imageZoom($filename,$zoom=0.6){

  //baseinfo

  $sourceImageInfo = getimagesize($filename);

  $sourceWidth = $sourceImageInfo[0];

  $sourceHeight = $sourceImageInfo[1];

  $sourceMine = $sourceImageInfo['mime'];

  $sourceRatio = $sourceWidth/$sourceHeight;

  $sourceX = 0;

  $sourceY = 0;

  //zoom

  $targetRatio = $zoom;

  //target-widht-height

  $targetWidth = $sourceWidth*$targetRatio;

  $targetHeight = $sourceHeight*$targetRatio;

  //init-params

  $sourceImage = null;

  switch($sourceMine){

    case 'image/gif':

      $sourceImage = imagecreatefromgif($filename);

      break;

    case 'image/jpeg':

      $sourceImage = imagecreatefromjpeg($filename);

      break;

    case 'image/png':

      $sourceImage = imagecreatefrompng($filename);

      break;

    default:

      return ;

      break;

  }

  //temp-target-image

  $tempSourceImage = imagecreatetruecolor($sourceWidth, $sourceHeight);

  $targetImage = imagecreatetruecolor($targetWidth,$targetHeight);

  //copy

  imagecopy($tempSourceImage, $sourceImage, 0, 0, $sourceX, $sourceY, $sourceWidth, $sourceHeight);

  //zoom

  imagecopyresampled($targetImage, $tempSourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight);

  //header

  header('Content-Type: image/jpeg');

  //image-loading

  imagejpeg($targetImage);

  //destroy

  imagedestroy($tempSourceImage);

  imagedestroy($sourceImage);

  imagedestroy($targetImage);

}

$filename = "8fcb7a0831b79c61.jpg";

imageZoom($filename);

&#63;>

로그인 후 복사

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • php结合imgareaselect实现图片裁剪
  • MacOS 安装 PHP的图片裁剪扩展Tclip
  • PHP图片处理之使用imagecopyresampled函数裁剪图片例子
  • PHP实现图片裁剪、添加水印效果代码
  • PHP图片裁剪函数(保持图像不变形)
  • php使用imagick模块实现图片缩放、裁剪、压缩示例
  • PHP加Nginx实现动态裁剪图片方案
  • 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
  • php+js实现图片的上传、裁剪、预览、提交示例
  • php图片的裁剪与缩放生成符合需求的缩略图
  • PHP 裁剪图片成固定大小代码方法

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1091853.htmlTechArticlePHP实现图片不变型裁剪及图片按比例裁剪的方法, 本文实例讲述了PHP实现图片不变型裁剪及图片按比例裁剪的方法。分享给大家供大家参考...
관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿