>  기사  >  php教程  >  PHP 연구 노트: 동일한 비율로 그림 크기 조정

PHP 연구 노트: 동일한 비율로 그림 크기 조정

WBOY
WBOY원래의
2016-09-19 08:55:061054검색

코드로 직접 이동합니다. imgzip($src,$newwid,$newhei) 함수는 원본 이미지, 크기 조정에 필요한 너비 및 크기 조정 길이를 가져옵니다. 코드가 적혀있습니다. 이해가 안 되시면 메시지를 남겨주세요 ㅎㅎ

<?<span style="color: #000000;">php 

</span><span style="color: #008000;">//</span><span style="color: #008000;">压缩图片  缩略图</span>

<span style="color: #800080;">$src</span>= "xiezheng.jpg"<span style="color: #000000;">;
</span><span style="color: #800080;">$newwid</span>=640<span style="color: #000000;">;
</span><span style="color: #800080;">$newhei</span>= 480<span style="color: #000000;">;
</span><span style="color: #0000ff;">function</span> imgzip(<span style="color: #800080;">$src</span>,<span style="color: #800080;">$newwid</span>,<span style="color: #800080;">$newhei</span><span style="color: #000000;">){
    </span><span style="color: #800080;">$imgInfo</span> = <span style="color: #008080;">getimagesize</span>(<span style="color: #800080;">$src</span><span style="color: #000000;">);

    </span><span style="color: #800080;">$imgType</span> = image_type_to_extension(<span style="color: #800080;">$imgInfo</span>[2], <span style="color: #0000ff;">false</span><span style="color: #000000;">);

    </span><span style="color: #800080;">$fun</span> = "imagecreatefrom{<span style="color: #800080;">$imgType</span>}"<span style="color: #000000;">;

</span><span style="color: #008000;">//</span><span style="color: #008000;">声明图片   打开图片 在内存中</span>
    <span style="color: #800080;">$image</span> = <span style="color: #800080;">$fun</span>(<span style="color: #800080;">$src</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">方便配置长度宽度、高度,设置框为变量wid,高度为hei</span>
    <span style="color: #800080;">$wid</span>=<span style="color: #800080;">$imgInfo</span>[0<span style="color: #000000;">];
    </span><span style="color: #800080;">$hei</span>=<span style="color: #800080;">$imgInfo</span>[1<span style="color: #000000;">];
</span><span style="color: #008000;">//</span><span style="color: #008000;">判断长度和宽度,以方便等比缩放,规格按照500, 320</span>
    <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$wid</span>><span style="color: #800080;">$hei</span><span style="color: #000000;">){
        </span><span style="color: #800080;">$wid</span>=<span style="color: #800080;">$newwid</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$hei</span>=<span style="color: #800080;">$newwid</span>/(<span style="color: #800080;">$wid</span>/<span style="color: #800080;">$hei</span><span style="color: #000000;">);
    }</span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {
        </span><span style="color: #800080;">$wid</span> = <span style="color: #800080;">$newhei</span> * (<span style="color: #800080;">$wid</span> / <span style="color: #800080;">$hei</span><span style="color: #000000;">);
        </span><span style="color: #800080;">$hei</span> = <span style="color: #800080;">$newhei</span><span style="color: #000000;">;
    }

</span><span style="color: #008000;">//</span><span style="color: #008000;">在内存中建立一张图片</span>
    <span style="color: #800080;">$images2</span> = imagecreatetruecolor(<span style="color: #800080;">$newwid</span>, <span style="color: #800080;">$newhei</span>); <span style="color: #008000;">//</span><span style="color: #008000;">建立一个500*320的图片

//将原图复制到新建图片中
//imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)</span>
<span style="color: #000000;">
    imagecopyresampled(</span><span style="color: #800080;">$images2</span>, <span style="color: #800080;">$image</span>, 0, 0, 0, 0, <span style="color: #800080;">$wid</span>,<span style="color: #800080;">$hei</span>, <span style="color: #800080;">$imgInfo</span>[0],<span style="color: #800080;">$imgInfo</span>[1<span style="color: #000000;">]);

</span><span style="color: #008000;">//</span><span style="color: #008000;">销毁原始图片</span>
    imagedestroy(<span style="color: #800080;">$image</span><span style="color: #000000;">);


</span><span style="color: #008000;">//</span><span style="color: #008000;">直接输出图片文件</span>

    <span style="color: #008080;">header</span>("Content-type: ".<span style="color: #800080;">$imgInfo</span>['mime'<span style="color: #000000;">]);
    imagejpeg(</span><span style="color: #800080;">$images2</span><span style="color: #000000;">);

</span><span style="color: #008000;">//</span><span style="color: #008000;">保存图片 到新文件</span>
    imagejpeg(<span style="color: #800080;">$images2</span>, 'new.jpg', 100); <span style="color: #008000;">//</span><span style="color: #008000;">10代码输出图片的质量 0-100 100质量最高

//销毁</span>
    imagedestroy(<span style="color: #800080;">$images2</span><span style="color: #000000;">);
}
imgzip(</span><span style="color: #800080;">$src</span>,<span style="color: #800080;">$newwid</span>,<span style="color: #800080;">$newhei</span><span style="color: #000000;">);


</span>?>

효과

압축 전

압축 후

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