>  기사  >  백엔드 개발  >  PHP를 사용하여 객체 지향 및 프로세스 지향 방법의 그림 구현에 텍스트 워터마크 추가

PHP를 사용하여 객체 지향 및 프로세스 지향 방법의 그림 구현에 텍스트 워터마크 추가

WBOY
WBOY원래의
2016-07-30 13:30:321577검색

1: 프로세스 지향 작성 방식

<span>//</span><span>指定图片路径</span><span>$src</span> = '001.png'<span>;
</span><span>//</span><span>获取图片信息</span><span>$info</span> = <span>getimagesize</span>(<span>$src</span><span>);
</span><span>//</span><span>获取图片扩展名</span><span>$type</span> = image_type_to_extension(<span>$info</span>[2],<span>false</span><span>);
</span><span>//</span><span>动态的把图片导入内存中</span><span>$fun</span> =  "imagecreatefrom{<span>$type</span>}"<span>;
</span><span>$image</span> = <span>$fun</span>('001.png'<span>);
</span><span>//</span><span>指定字体颜色</span><span>$col</span> = imagecolorallocatealpha(<span>$image</span>,255,255,255,50<span>);
</span><span>//</span><span>指定字体内容</span><span>$content</span> = 'helloworld'<span>;
</span><span>//</span><span>给图片添加文字</span>imagestring(<span>$image</span>,5,20,30,<span>$content</span>,<span>$col</span><span>);
</span><span>//</span><span>指定输入类型</span><span>header</span>('Content-type:'.<span>$info</span>['mime'<span>]);
</span><span>//</span><span>动态的输出图片到浏览器中</span><span>$func</span> = "image{<span>$type</span>}"<span>;
</span><span>$func</span>(<span>$image</span><span>);
</span><span>//</span><span>销毁图片</span>imagedestroy(<span>$image</span>);

2: 객체 지향 구현 방식

<span>class</span><span> Image_class {
    </span><span>private</span><span>$image</span><span>;
    </span><span>private</span><span>$info</span><span>;

    </span><span>/*</span><span>*
     * @param $src:图片路径
     * 加载图片到内存中
     </span><span>*/</span><span>function</span> __construct(<span>$src</span><span>){
        </span><span>$info</span> = <span>getimagesize</span>(<span>$src</span><span>);
        </span><span>$type</span> = image_type_to_extension(<span>$info</span>[2],<span>false</span><span>);
        </span><span>$this</span> -> info =<span>$info</span><span>;
        </span><span>$this</span>->info['type'] = <span>$type</span><span>;
        </span><span>$fun</span> = "imagecreatefrom" .<span>$type</span><span>;
        </span><span>$this</span> -> image = <span>$fun</span>(<span>$src</span><span>);
    }

    </span><span>/*</span><span>*
     * @param $fontsize: 字体大小
     * @param $x: 字体在图片中的x位置
     * @param $y: 字体在图片中的y位置
     * @param $color: 字体的颜色是一个包含rgba的数组
     * @param $text: 想要添加的内容
     * 操作内存中的图片,给图片添加文字水印
     </span><span>*/</span><span>public</span><span>function</span> fontMark(<span>$fontsize</span>,<span>$x</span>,<span>$y</span>,<span>$color</span>,<span>$text</span><span>){
        </span><span>$col</span> = imagecolorallocatealpha(<span>$this</span>->image,<span>$color</span>[0],<span>$color</span>[1],<span>$color</span>[2],<span>$color</span>[3<span>]);
        imagestring(</span><span>$this</span>->image,<span>$fontsize</span>,<span>$x</span>,<span>$y</span>,<span>$text</span>,<span>$col</span><span>);
    }
    </span><span>/*</span><span>     * 输出图片到浏览器中
     </span><span>*/</span><span>public</span><span>function</span><span> show(){
       </span><span>header</span>('content-type:' . <span>$this</span> -> info['mime'<span>]);
        </span><span>$fun</span>='image' . <span>$this</span>->info['type'<span>];
        </span><span>$fun</span>(<span>$this</span>-><span>image);
    }

    </span><span>/*</span><span>*
     * 销毁图片
     </span><span>*/</span><span>function</span><span> __destruct(){
        imagedestroy(</span><span>$this</span>-><span>image);
    }
}
</span><span>//</span><span>对类的调用</span><span>$obj</span> = <span>new</span> Image_class('001.png'<span>);
</span><span>$obj</span>->fontMark(20,20,30,<span>array</span>(255,255,255,60),'hello'<span>);
</span><span>$obj</span>->show();

위 내용은 PHP를 사용하여 그림에 텍스트 워터마크를 추가하는 방법을 소개합니다. 즉, 콘텐츠 측면을 포함하여 객체 지향과 프로세스 지향이라는 두 가지 방법을 구현하는 것이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.