php image resize

2025-12-07 0 265

php图像

PHP库进行调整,扩展和作物图像大小。

云解决方案

如果您不想裁剪,调整大小和存储图像在服务器上,则Gumlet.com是一项免费服务,可以实时处理图像并通过CDN在全球范围内提供。


设置

软件包可通过Packagist提供与供应商和软件包标识符相同的供应商。

如果使用Composer,则在您的composer.json文件中添加:

{
    \"require\" : {
        \"gumlet/php-image-resize\" : \" 2.1.* \"
    }
}

对于PHP版本> = 7.2至2.0.x版本应使用此库的版本。

否则:

 include \' /path/to/ImageResize.php \' ;

因为此类使用命名 – 实例化对象时,您需要使用完全合格的名称空间:

 $ image = new \\ Gumlet \\ ImageResize ();

或别名:

 use \\ Gumlet \\ ImageResize ;

$ image = new ImageResize ();

注意:此库使用的GD类不支持调整动画大小的GIF文件


调整大小

要缩放图像,在这种情况下,大小的大小(缩放是基于百分比的):

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> scale ( 50 );
$ image -> save ( \' image2.jpg \' );

根据一个维度(保持长宽比)调整图像的大小:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToHeight ( 500 );
$ image -> save ( \' image2.jpg \' );

$ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToWidth ( 300 );
$ image -> save ( \' image2.jpg \' );

根据给定量度有关其取向的措施(保持纵横比)的图像大小:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToLongSide ( 500 );
$ image -> save ( \' image2.jpg \' );

$ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToShortSide ( 300 );
$ image -> save ( \' image2.jpg \' );

要调整图像以最佳拟合给定的尺寸(保持ASPET比率):

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToBestFit ( 500 , 300 );
$ image -> save ( \' image2.jpg \' );

所有调整大小函数都有$allow_enlarge选项,默认情况下设置为false。您可以通过将true调整大小函数传递给启用:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resize ( 500 , 300 , $ allow_enlarge = True );
$ image -> save ( \' image2.jpg \' );

如果您乐于自己处理宽高比,则可以直接调整大小:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resize ( 800 , 600 );
$ image -> save ( \' image2.jpg \' );

如果您不使用与源图像相同的宽度/高度比率,这将导致您的图像偏斜。

庄稼

裁剪图像:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 );
$ image -> save ( \' image2.jpg \' );

这将使图像尽可能地缩小到通过的尺寸,然后裁剪其余的剪辑。

在上面的示例的情况下,将400px×600px的图像调整为200px×300px,然后将50px从顶部和底部取下,使您拥有200px×200px。

作物模式:

很少有裁剪模式选项可供您选择在调整图像大小后如何处理最终超出宽度或高度的方式。使用的默认作物模式是CROPCENTER 。结果,这些代码是等效的:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 );
$ image -> save ( \' image2.jpg \' );
 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 , true , ImageResize:: CROPCENTER );
$ image -> save ( \' image2.jpg \' );

如果您的图像为400px×600px,并且想将其裁剪到200px×200px,则图像将调整到200px×300px的大小,然后您可以指出如何处理100px超过您想要使用的作物模式的价值。

例如,通过裁剪模式农作物CROPTOP将导致100px取下底部,使您拥有200px×200px。

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 , true , ImageResize:: CROPTOP );
$ image -> save ( \' image2.jpg \' );

相反,通过农作物模式, CROPBOTTOM将导致100px脱离顶部,而您以200px×200px的身份将您带来。

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 , true , ImageResize:: CROPBOTTOM );
$ image -> save ( \' image2.jpg \' );

Freecrop:

还有一种定义自定义作物位置的方法。您可以定义$ x和$ y的freecrop方法:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> freecrop ( 200 , 200 , $ x =  20 , $ y = 20 );
$ image -> save ( \' image2.jpg \' );

从字符串加载和保存图像

从字符串加载图像:

 $ image = ImageResize:: createFromString ( base64_decode ( \' R0lGODlhAQABAIAAAAQCBP///yH5BAEAAAEALAAAAAABAAEAAAICRAEAOw== \' ));
$ image -> scale ( 50 );
$ image -> save ( \' image.jpg \' );

您还可以将结果返回为字符串:

 $ image = ImageResize:: createFromString ( base64_decode ( \' R0lGODlhAQABAIAAAAQCBP///yH5BAEAAAEALAAAAAABAAEAAAICRAEAOw== \' ));
$ image -> scale ( 50 );
echo $ image -> getImageAsString ();

魔术__toString()也得到支持:

 $ image = ImageResize:: createFromString ( base64_decode ( \' R0lGODlhAQABAIAAAAQCBP///yH5BAEAAAEALAAAAAABAAEAAAICRAEAOw== \' ));
$ image -> resize ( 10 , 10 );
echo ( string ) $ image ;

显示

如上所述,您可以调用$image->save(\'image.jpg\');

要将图像直接渲染到浏览器中,您可以调用$image->output() ;

图像类型

保存到磁盘或输出到浏览器中时,脚本假设输出类型与输入相同。

如果您想在其他图像类型中保存/输出,则需要传递(支持的)PHP IMAGETYPE_ *常数:

  • IMAGETYPE_GIF
  • IMAGETYPE_JPEG
  • IMAGETYPE_PNG

这使您可以保存与源的不同类型:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> resize ( 800 , 600 );
$ image -> save ( \' image.png \' , IMAGETYPE_PNG );

质量

属性$quality_jpg$quality_webp$quality_png可供您配置:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> quality_jpg = 100 ;
$ image -> resize ( 800 , 600 );
$ image -> save ( \' image2.jpg \' );

默认情况下,它们分别设置为85和6。有关更多信息,请参见imagejpeg()imagepng()的手册条目。

您还可以将质量直接传递给save()output()getImageAsString()方法:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> crop ( 200 , 200 );
$ image -> save ( \' image2.jpg \' , null , 100 );

$ image = new ImageResize ( \' image.jpg \' );
$ image -> resizeToWidth ( 300 );
$ image -> output ( IMAGETYPE_PNG , 4 );

$ image = new ImageResize ( \' image.jpg \' );
$ image -> scale ( 50 );
$ result = $ image -> getImageAsString ( IMAGETYPE_PNG , 4 );

我们将在上面的示例中传递null的图像类型,以跳过它并提供质量。在这种情况下,假定图像类型与输入相同。

交错

默认情况下,打开图像交织。可以通过将$interlace设置为0 :可以禁用它:

 $ image = new ImageResize ( \' image.jpg \' );
$ image -> scale ( 50 );
$ image -> interlace = 0 ;
$ image -> save ( \' image2.jpg \' );

链接

执行操作时,将保留原始图像,以便您可以链接操作而不会过多破坏。

这对于创建多种尺寸很有用:

 $ image = new ImageResize ( \' image.jpg \' );
$ image
    -> scale ( 50 )
    -> save ( \' image2.jpg \' )

    -> resizeToWidth ( 300 )
    -> save ( \' image3.jpg \' )

    -> crop ( 100 , 100 )
    -> save ( \' image4.jpg \' )
;

例外

ImageSeresize将ImageSeresizeexexection引起了自己的错误。您可以抓住它或捕获其扩展的常规\\ exception。

这不是可以预期的,但是如果有任何可怕的错误在中途错误,则可以从PHP GD和图像函数(http://php*.net*/ma*nual/manual/en/en/ref.image.php)显示注意或警告错误。

 try {
    $ image = new ImageResize ( null );
    echo \" This line will not be printed \" ;
} catch ( ImageResizeException $ e ) {
    echo \" Something went wrong \" . $ e -> getMessage ();
}

过滤器

您可以为新图像(例如Blur或添加横幅)应用特殊效果。

 $ image = new ImageResize ( \' image.jpg \' );

// Add blure
$ image -> addFilter ( function ( $ imageDesc ) {
    imagefilter ( $ imageDesc , IMG_FILTER_GAUSSIAN_BLUR );
});

// Add banner on bottom left corner
$ image18Plus = \' banner.png \'
$ image -> addFilter ( function ( $ imageDesc ) use ( $ image18Plus ) {
    $ logo = imagecreatefrompng ( $ image18Plus );
    $ logo_width = imagesx ( $ logo );
    $ logo_height = imagesy ( $ logo );
    $ image_width = imagesx ( $ imageDesc );
    $ image_height = imagesy ( $ imageDesc );
    $ image_x = $ image_width - $ logo_width - 10 ;
    $ image_y = $ image_height - $ logo_height - 10 ;
    imagecopy ( $ imageDesc , $ logo , $ image_x , $ image_y , 0 , 0 , $ logo_width , $ logo_height );
});

翻动

使用给定模式翻转图像,此方法仅适用于PHP版本5.4。

 $ flip = new ImageResize ( \' image.png \' );
$ image = imagecreatetruecolor ( 200 , 100 );

$ image -> addFilter ( function ( $ image ) {
    imageflip ( $ image , IMG_FLIP_HORIZONTAL );
});

这两个功能都将按照添加的顺序使用。

伽玛颜色校正

您可以启用默认情况下禁用的伽马颜色校正。

 $ image = new ImageResize ( \' image.png \' );
$ image -> gamma ( true );

API文档

https://gumlet.gith***ub.io/php-image-resize/index.html


维护者

该图书馆由Gumlet.com维护

下载源码

通过命令行克隆项目:

git clone https://github.com/gumlet/php-image-resize.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 php image resize https://www.zuozi.net/32040.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务