Rumah > php教程 > php手册 > php等比例压缩图片(jpg,jif,png图片等比例压缩)

php等比例压缩图片(jpg,jif,png图片等比例压缩)

WBOY
Lepaskan: 2016-06-06 19:46:10
asal
1384 orang telah melayarinya

?php/*+-----------------------------------------------------------------------+*//*+ jpg,jif,png 图片 等 比例 压缩 +*//*+-----------------------------------------------------------------------+*/class RarImag{/** * 得到等 比例 缩放的长宽 *

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

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

 <p><?php /*+-----------------------------------------------------------------------+*/

/*+ jpg,jif,png<strong><strong>图片</strong>等<strong><strong>比例</strong></strong><strong><strong>压缩</strong></strong>                                             +*/

/*+-----------------------------------------------------------------------+*/

class RarImag{

 /**

  * 得到等<strong><strong>比例</strong></strong>缩放的长宽

  */

 function getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight) {

  if($srcWidth > $maxWidth) {

   $maxWidth = $maxWidth;

   if($srcHeight > $maxHeight) {

    $maxHeight = ($srcHeight/$srcHeight) * $maxWidth;

   } else {

     $maxHeight = $srcHeight;

   }

   return array('width' => $maxWidth,'height' => $maxHeight);

  }

   

  if($srcHeight > $maxHeight) {

   $maxHeight = $maxHeight;

   if($srcWidth > $maxWidth) {

     $maxWidth = ($srcWidth/$srcHeight) * $maxHeight;

   } else {

     $maxWidth = $srcWidth;

   }

   return array('width' => $srcWidth,'height' => $maxHeight);

  }

   

  return array('width' => $srcWidth,'height' => $srcHeight);</p><p> }

 /**

  * 等<strong><strong>比例</strong></strong>生成缩略图

  *

  * @param  String  $srcFile  原始文件路径

  * @param  String  $dstFile  目标文件路径

  * @param  Integer  $maxWidth  生成的目标文件的最大宽度

  * @param  Integer  $maxHeight  生成的目标文件的最大高度

  * @return  Boolean  生成成功则返回true,否则返回false

  */

 function makeThumb($srcFile, $dstFile, $maxWidth, $maxHeight) {

  if ($size = getimagesize($srcFile)) {

   $srcWidth = $size[0];

   $srcHeight = $size[1];

   $mime = $size['mime'];</p><p>   switch ($mime) {

    case 'image/jpeg';

     $isJpeg = true;

     break;

    case 'image/gif';

     $isGif = true;

     break;

    case 'image/png';

     $isPng = true;

     break;

    default:

     return false;

     break;

   }

   //header("Content-type:$mime");

   $arr = $this->getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight);

   $thumbWidth = $arr['width'];

   $thumbHeight = $arr['height'];

   if (isset($isJpeg) && $isJpeg) {

    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);

    $srcPic = imagecreatefromjpeg($srcFile);

    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);

    imagejpeg($dstThumbPic, $dstFile, 100);

    imagedestroy($dstThumbPic);

    imagedestroy($srcPic);

    return true;

   } elseif (isset($isGif) && $isGif) {

    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);

    //创建透明画布

    imagealphablending($dstThumbPic, true);

    imagesavealpha($dstThumbPic, true);

    $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);

    imagefill($dstThumbPic, 0, 0, $trans_colour);</p><p>    $srcPic = imagecreatefromgif($srcFile);

    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);

    imagegif($dstThumbPic, $dstFile);

    imagedestroy($dstThumbPic);

    imagedestroy($srcPic);

    return true;

   } elseif (isset($isPng) && $isPng) {

    $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);

    //创建透明画布

    imagealphablending($dstThumbPic, true);

    imagesavealpha($dstThumbPic, true);

    $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);

    imagefill($dstThumbPic, 0, 0, $trans_colour);</p><p>    $srcPic = imagecreatefrompng($srcFile);

    imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);

    imagepng($dstThumbPic, $dstFile);

    imagedestroy($dstThumbPic);

    imagedestroy($srcPic);

    return true;

   } else {

    return false;

   }

  } else {

   return false;

  }

 }

}

?></p>

Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan