首页 > php教程 > PHP源码 > 水印生成缩略图

水印生成缩略图

PHP中文网
发布: 2016-05-25 16:58:41
原创
1076 人浏览过

跳至

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

class InsertLogo//水印类

  {

   

    private $source;//主图片路径

    private $logo;//水印图片路径

    private $source_type;//主图片类型

    private $logo_type;//水印图片类型

    private $source_width;//主图片宽度

    private $source_height;//主图片高度

    private $logo_width;//水印图片宽度

    private $logo_height;//水印图片高度

    private $tinyImage_width;//略缩图宽

    private $tinyImage_height;//略缩图高

    private $newPicPath;//生成水印图片地址

    private $tinyImagePath;//生成略缩图存放路径

    function __construct($source,$logo)//传入图片路径

    {

      $this->source=$source;

      $info=GetImageSize($source);

      $this->source_width=$info[0];

      $this->source_height=$info[1];

      $this->source_type_id=$info[2];

      $this->source_type=$info['mime'];//其值 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式

      $this->logo=$logo;

      $info=GetImageSize($logo);

      $this->logo_width=$info[0];

      $this->logo_height=$info[1];

      $this->logo_type_id=$info[2];

      $thi->logo_type=$logo['mime'];

    }

    //1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP info[2]图片类型

    function JudgeTypeAndDeal($type,$source)//判断并处理,返回PHP可识别编码

    {

      if($type==1)//能处理的三种图片。可在上传类限制图片。

      {

        return ImageCreateFromGIF($source);

      }

      else if($type==2)

      {

        return ImageCreateFromJPEG($source);

      }

      else

      {

        return ImageCreateFromPNG($source);

      }

    }

    function CreateLogoImage()//生成水印图

    {

      $this->source=$this->JudgeTypeAndDeal($this->source_type_id,$this->source);//取得主图片编码

      $this->logo=$this->JudgeTypeAndDeal($this->logo_type_id,$this->logo);//取得水印编码

      $x=$this->source_width-$this->logo_width;

      $y=$this->source_height-$this->logo_height;

      $w=$this->logo_width;

      $h=$this->logo_height;

      /* echo "x=".$x;

      echo ",y=".$y;

      echo ",w=".$w;

      echo ",h=".$h; */

      ImageCopy($this->source,$this->logo,$x,$y,0,0,$w,$h)or die("fail to combine");

      $this->newPicPath='App/Upload/image/normal/1108000627/new.jpg';

      ImageJpeg($this->source,'new.jpg');

      rename('new.jpg',$this->newPicPath);//放到相应文件位置

    }   

    function CreateTinyImage()//生成略缩图,生成略缩图原则要控制图片比例,防止比例不协调,可改参数,尝试显示一部分原比例部分图片

    {

      $TinyImage=imagecreatetruecolor($this->source_width*0.3,$this->source_height*0.3);

      $this->source=$this->JudgeTypeAndDeal($this->source_type_id,$this->source);//取得主图片编码

      ImageCopyResized($TinyImage,$this->source,0,0,0,0,$this->source_width*0.3,$this->source_height*0.3,$this->source_width,$this->source_height) or die("fail");

      $this->tinyImagePath='App/Upload/image/tiny/1108000627/new.jpg';

      ImageJpeg($TinyImage,'new.jpg');

      rename('new.jpg',$this->tinyImagePath);//放到相应文件位置

    }

  }

  /*添加水印类生成略缩图类END*/

登录后复制

                   

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板