首页 > 后端开发 > php教程 > 图像调整大小使PHP变得容易

图像调整大小使PHP变得容易

Lisa Kudrow
发布: 2025-03-01 10:23:09
原创
732 人浏览过

Image Resizing Made Easy With PHP

>>

>是否想要一种通用,易于使用的方法来调整PHP的图像?好吧,这就是PHP课程的目的 - 我们称之为可以在幕后进行肮脏工作的功能。我们将学习如何创建自己的班级,这些班级将是可以很好地构建和扩展的。 

>

介绍

>
    >
  • 可以快速瞥见我们试图在课堂上实现的目标,课程应该是:
  • >易于使用



,可以打开,调整,调整和保存不同的图像格式

// *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>
登录后复制
登录后复制
登录后复制
>有很多要涵盖的东西 - LET是开始的。准备第一步很容易。在您的工作目录中,创建两个文件:一个称为index.php 的文件,另一个 resize-class.php

2。调用对象让您了解我们要实现的目标,我们将从编码我们使用的调节来调整图像大小的情况下开始。打开您的

index.php

文件并添加以下代码。如您所见,我们正在做的事情有一个不错的逻辑。我们打开图像文件,并设置要将图像大小的尺寸设置为调整大小的类型。然后,我们保存图像,选择所需的图像格式和质量。从上面的代码中保存并关闭您的

index.phpfile。请记住,这全都与灵活性有关。 3。创建类骨骼>它是面向对象的编程(OOP),可以使这种轻松自然的含义。想想班级像模式;您可以封装数据 - 另一个行话术语,实际上只是意味着隐藏数据。然后,我们可以一遍又一遍地重复此类,而无需重写任何调整大小的代码 - 您只需要像我们在步骤2中所做的那样调用适当的方法。一旦创建了模式,我们就创建了该模式的实例,称为对象。打开您的ressize-class.php文件。以下是一个真正的基本类骨骼结构,我将其命名为$ filename。我们需要用PHP(更具体地说是PHP GD库)打开传递的文件,以便PHP可以读取图像。我们正在使用自定义方法$ image作为私有变量来执行此操作,通过键入私有,您限制了该变量的范围,因此只能由类访问。从现在开始,我们可以打电话给我们的开放映像,称为资源,我们将在调整大小时进行。

>当我们使用时,让我们存储图像的高度和宽度。我有种感觉以后将有用。

>您现在应该拥有以下内容。

// *** Include the class<br>include("resize-class.php");<br><br>// *** 1) Initialize / load image<br>$resizeObj = new resize('sample.jpg');<br><br>// *** 2) Resize image (options: exact, height, width, auto, crop)<br>$resizeObj -> resizeImage(150, 100, 'crop');<br><br>// *** 3) Save image<br>$resizeObj -> saveImage('sample-resized.gif', 100);<br>
登录后复制
登录后复制
登录后复制

> imagesy()方法是内置功能,是GD库的一部分。他们分别检索了图像的宽度和高度。在上一个步骤中打开图像


,我们在PHP中调用了自定义方法strrchr()

函数,该功能从指定字符的最后一次出现到其末尾从最后出现返回主字符串的一部分。例如,fileName

papaya.jpg

将为我们提供.jpg ,并且文件名宽度 - 将设置宽度,将根据纵横比调整高度。 (Height自动确定选项2和3。如果您通过具有不同尺寸照片的文件夹循环循环,请让脚本确定如何处理此操作。 (作物

7。调整大小。让我们做!首先是通过创建一些自定义方法来获得我们新图像的最佳宽度和高度,当然,如上所述,我们的调整大小选项传递。宽度和高度作为数组返回并将其设置为各自的变量。随意通过参考来传递,但我不是那个忠实拥护者。

  • 第二部分是执行实际调整大小的方法。我们将使用两个内置的PHP功能进行调整。它们是:
  • imageCopyResmplempled

  • >我建议您在文档中阅读有关它们的信息。

    >

    很简而$ ImageResized;

    >
      带有其他类变量。
    • 调整大小由PHP模块(称为GD库)执行。我们正在使用的许多方法由此库提供。
    • >

    在上面的代码片段中,我们计算新的图像尺寸并相应地创建一个真实的颜色图像对象。然后将此图像对象传递到高度

    或自动

    ,我们使用图像的原始宽度和高度来确定调整大小的图像是否应具有固定宽度或高度。对于景观方向的图像,我们将宽度保持固定。对于肖像方向的图像,我们将高度保持固定。如果原始图像是正方形,我们使用新的宽度和高度值选择固定尺寸。

    $ optimalHeight

    $ optimalWidth<p>,我们用于调整。原因是我们的班级没有直接将图像直接裁剪为指定的宽度和高度,而是在调整大小后的图像。</p> <p>>假设图像的尺寸为1920W和1080h,您想将其裁剪为1200W和200h。如您所见,原始宽度与新宽度的比率将低于相应的高度比。因此,首先需要以使其宽度降至1200的方式进行调整大小,并且高度相应地变化。</p>><p>>在调整大小后,将完成图像的实际裁剪。</p>><hr> <h2></h2>10。农作物<p></p>如果您选择了农作物(即您已经使用了农作物选项),那么您还有一个小步骤。我们将从中心裁剪图像。裁剪与调整大小非常相似,但传递了几个大小的参数。保存图像<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// *** Include the class&lt;br&gt;include(&quot;resize-class.php&quot;);&lt;br&gt;&lt;br&gt;// *** 1) Initialize / load image&lt;br&gt;$resizeObj = new resize('sample.jpg');&lt;br&gt;&lt;br&gt;// *** 2) Resize image (options: exact, height, width, auto, crop)&lt;br&gt;$resizeObj -&gt; resizeImage(150, 100, 'crop');&lt;br&gt;&lt;br&gt;// *** 3) Save image&lt;br&gt;$resizeObj -&gt; saveImage('sample-resized.gif', 100);&lt;br&gt;</pre><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div> <hr>>我们要到达那里;快要完成了。现在是时候保存图像了。我们通过路径并指定了我们想要的图像质量,范围为0-100,100是最好的。然后我们调用适当的方法。有关图像质量的几件事:JPG使用0-100的比例,100是最好的。 GIF图像没有图像质量设置。 PNG做到了,但是他们使用0-9、0是最好的。这不是很好,因为我们不能每次要保存图像时都会记住这一点。因此,我们可以做一些魔术来标准化所有内容。<h2></h2> <p>现在也是销毁我们的图像资源以释放一些内存的好时机。如果您要在生产中使用它,那么捕获并返回保存的图像的结果也可能是一个好主意。感谢您遵循本教程,希望您发现它很有用。蒙蒂(Monty)是一位全栈开发人员,他也喜欢编写教程并了解新的JavaScript库。</p>

    以上是图像调整大小使PHP变得容易的详细内容。更多信息请关注PHP中文网其他相关文章!

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