搜尋
首頁後端開發php教程圖像調整大小使PHP變得容易

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>如果您選擇了農作物(即您已經使用了農作物選項),那麼您還有一個小步驟。我們將從中心裁剪圖像。裁剪與調整大小非常相似,但傳遞了幾個大小的參數。保存圖像<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> <hr>>我們要到達那裡;快要完成了。現在是時候保存圖像了。我們通過路徑並指定了我們想要的圖像質量,範圍為0-100,100是最好的。然後我們調用適當的方法。有關圖像質量的幾件事:JPG使用0-100的比例,100是最好的。 GIF圖像沒有圖像質量設置。 PNG做到了,但是他們使用0-9、0是最好的。這不是很好,因為我們不能每次要保存圖像時都會記住這一點。因此,我們可以做一些魔術來標準化所有內容。 <h2></h2> <p>現在也是銷毀我們的圖像資源以釋放一些內存的好時機。如果您要在生產中使用它,那麼捕獲並返回保存的圖像的結果也可能是一個好主意。感謝您遵循本教程,希望您發現它很有用。蒙蒂(Monty)是一位全棧開發人員,他也喜歡編寫教程並了解新的JavaScript庫。</p>

    以上是圖像調整大小使PHP變得容易的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    使用數據庫存儲會話的優點是什麼?使用數據庫存儲會話的優點是什麼?Apr 24, 2025 am 12:16 AM

    使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

    您如何在PHP中實現自定義會話處理?您如何在PHP中實現自定義會話處理?Apr 24, 2025 am 12:16 AM

    在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

    什麼是會話ID?什麼是會話ID?Apr 24, 2025 am 12:13 AM

    SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

    您如何在無狀態環境(例如API)中處理會議?您如何在無狀態環境(例如API)中處理會議?Apr 24, 2025 am 12:12 AM

    在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。

    您如何防止與會議有關的跨站點腳本(XSS)攻擊?您如何防止與會議有關的跨站點腳本(XSS)攻擊?Apr 23, 2025 am 12:16 AM

    要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

    您如何優化PHP會話性能?您如何優化PHP會話性能?Apr 23, 2025 am 12:13 AM

    优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

    什麼是session.gc_maxlifetime配置設置?什麼是session.gc_maxlifetime配置設置?Apr 23, 2025 am 12:10 AM

    theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

    您如何在PHP中配置會話名?您如何在PHP中配置會話名?Apr 23, 2025 am 12:08 AM

    在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    MantisBT

    MantisBT

    Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    VSCode Windows 64位元 下載

    VSCode Windows 64位元 下載

    微軟推出的免費、功能強大的一款IDE編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用