1. 程式人生 > >PHP原生--縮圖的生成

PHP原生--縮圖的生成

 /** 
     * 生成縮圖函式(支援圖片格式:gif、jpeg、png和bmp) 
     * @author ruxing.li 
     * @param  string $src       源圖片路徑 
     * @param  int    $width     縮圖寬度(只指定高度時進行等比縮放) 
     * @param  int    $width     縮圖高度(只指定寬度時進行等比縮放) 
     * @param  string $filename  儲存路徑(不指定時直接輸出到瀏覽器) 
     * @return bool 
     * @param
array $size 影象的資訊 * @param string $src_mime 影象的MIME * @param string $src_type 影象的型別 * @param string $src_h 影象的原始高 * @param string @src_w 影象的原始寬 * @param string @imagefunc 輸出圖象到瀏覽器或檔案的對應函式。 */
function mkThumbnail($src, $width = null, $height
= null, $filename = null)
{
//如果寬和高都不存在 if (!isset($width) && !isset($height)) return false; //如果寬存在,但是寬小於0 if (isset($width) && $width <= 0) return false; //如果高存在,但是高小於0 if (isset($height) && $height
<= 0) return false; $size = getimagesize($src); /*獲取影象尺寸 array(7) { [0] => int(130) //[0]原始寬 [1] => int(130) //[1]原始高 [2] => int(2) //[2]影象的型別(1 = GIF, 6 = BMP,7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC,10 = JP2,11 = JPX, 12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM) //[3]給出的是一個寬度和高度的字串,可以直接用於 HTML 的 <image> 標籤 [3] => string(24) "width="130" height="130"" ["bits"] => int(8) //bits 給出的是影象的每種顏色的位數,二進位制格式 ["channels"] => int(3) //channels 給出的是影象的通道值,RGB 影象預設是 3 //mime 給出的是影象的 MIME 資訊,此資訊可以用來在 HTTP Content-type 頭資訊中傳送正確的資訊, 如:header("Content-type: image/jpeg"); ["mime"] => string(10) "image/jpeg" } */ if (!$size) return false; //將原始寬、原始高、影象型別放入 list($src_w, $src_h, $src_type) = $size; //影象的型別 "image/jpeg" $src_mime = $size['mime']; switch($src_type) { case 1 : $img_type = 'gif'; break; case 2 : $img_type = 'jpeg'; break; case 3 : $img_type = 'png'; break; case 15 : $img_type = 'wbmp'; break; default : return false; } //如果沒有設定寬 if (!isset($width)) $width = $src_w * ($height / $src_h); //如果沒有設定高 if (!isset($height)) $height = $src_h * ($width / $src_w); //獲取對應的影象函式 $imagecreatefunc = 'imagecreatefrom' . $img_type; //由檔案或 URL 建立一個新圖象 $src_img = $imagecreatefunc($src); //返回一個影象識別符號,代表了一幅大小為 x_size 和 y_size 的黑色影象 $dest_img = imagecreatetruecolor($width, $height); /* 引數1: 新建的圖片 引數2: 需要載入的圖片/老圖片 引數3: 設定需要載入的圖片在新圖中的x座標 引數4: 設定需要載入的圖片在新圖中的y座標 引數5: 設定載入圖片要載入的區域x座標 引數6: 設定載入圖片要載入的區域y座標 引數7: 設定載入的原圖的寬度(在此設定縮放) 引數8: 設定載入的原圖的高度(在此設定縮放) 引數9: 原圖要載入的寬度 引數10:原圖要載入的高度 */ imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $width, $height, $src_w, $src_h); $imagefunc = 'image' . $img_type; if ($filename) { // imagefunc 輸出圖象到瀏覽器或檔案。 $imagefunc($dest_img, $filename); } else { header('Content-Type: ' . $src_mime); //輸出影象到瀏覽器 $imagefunc($dest_img); } //銷燬新、舊影象 imagedestroy($src_img); imagedestroy($dest_img); return true; }

相關推薦

PHP原生--生成

/** * 生成縮圖函式(支援圖片格式:gif、jpeg、png和bmp) * @author ruxing.li * @param string $src 源圖片路徑 * @param int

php製作

PHP製作縮圖 1、製作縮圖的函式 imagecopyresampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh) 說明: dest 目標畫布 src 原圖(要縮略的圖片) dx,dy 目標畫布上的一個點 sx,sy 原圖上的一個點 dw,dh 畫布的 寬高

從0到1製作WordPress主題#9新增functions.php

現在我們轉到下圖顯示的表單新增帖子,會發現你看不到在其他WordPress主題或其他WordPress網站上看到過的特色圖片框。 原因是我們沒有包含該功能。 1、進入我們的主題資料夾simple,我們將建立一個叫functions.php的檔案1,用於放置一些

php簡易處理程式碼

此程式碼是網上搜到的,可以快速的做出縮圖stand_test.php<?php // http://localhost/exa5/thumb_image/thumb_stand.php?w=200&h=200 // 把大圖縮略到縮圖指定的範圍內,可能有留白(原圖

生成規定大小的圖片(生成

要用到一個圖片生成的程式碼,網上找了下,有一個C#版本的,不是自己想要的,不過他描述的邏輯是和想的。最後自己考慮用兩張圖片合併後得到一個規定大小的圖片。 無論你現在上傳什麼樣的圖片,首先我們將底圖固定(比如為110*110),然後你的圖片可能是1000*800,或是200*

Android圖片質量壓縮以及生成

1、圖片的質量壓縮 圖片的質量壓縮是指,僅僅壓縮圖片檔案的大小,但當圖片載入到記憶體中時,佔用的記憶體大小並沒有太大變化。可以通過質量壓縮,加快圖片上傳的速度。 程式碼如下: /** *將檔案壓縮後覆蓋原始檔 */ public static

php生成方法封裝

------------------------------------------------- 引數: $filename : 要裁剪的圖片路徑 $destination : 要生成的圖片資料夾和路徑 $dst_w : 要把圖片裁剪到多寬 $dst_h : 要把圖片裁剪到多高

php生成多尺寸記錄

  在進行縮圖生成的時候,圖片的大小總是會同時儲存好幾個尺寸的,那該怎麼處理呢? $filename = 'meinv.jpg'; list($src_w,$src_h,$imageTypeNum) = getimagesize($filename); //獲取圖片mi

PHP 生成圖片函式

各位小盆友使用前記得開啟 GD 庫的支援哦,附上程式碼。 <?php /** * 生成縮圖函式(支援圖片格式:gif、jpeg、png和bmp) * @author ruxing.li * @param string $src 源圖片路徑 * @p

PHP一個方法調整影象大小(生成

背景:  天氣很冷 PHP程式碼: /** * @param $imagedata 影象資料 * @param $width 縮放寬度 * @param $height 縮放高度 * @param int $per 縮放

php實現等比例生成圖片不失真

//等比例生成圖片縮圖不失真 function resizeImage($im,$maxwidth,$maxheight,$name,$filetype){     $pic_width = imagesx($im);     $pic_height = imagesy($

php上傳圖片自動生成方法函式

$file_name='C:\AppServ\www\_MG_9888.jpg'; $file_new='C:\AppServ\www\bbbb.jpg'; scal_pic($file_name,$file_new); function scal_pic($file_n

一個簡單的PHP生成函式

PHP上傳圖片、生成縮圖是比較常用到的功能,一般我們會把這些功能寫一個類,方便我們呼叫。今天發現了一個比較簡單些的PHP生成縮圖函式的程式碼,不敢獨享,特此與大家分享。自己使用時候認真看一下,程式碼中都有註釋的。 function img_create_small($big_img, $width, $h

使用PHP實現生成固定大小圖片功能(智慧裁剪,圖片不失真)

<?php //影象處理類 class Image { private $file; //圖片地址 private $width; //圖片長度 private $height; //圖片長度 private $type; //圖片型別

php 根據url自動生成

原理:設定apache rewrite ,當圖片不存在時,呼叫php建立圖片。 例如 原圖路徑為:http://localhost/upload/news/2013/07/21/1.jpg 縮圖路徑為

php 視訊上傳 FFMpeg 生成 GIF

html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </

PHP中使用Jpgraph生成統計

ron line gda t對象 其中 .html text cal 編碼 Jpgraph是PHP圖表類庫,可以生成折線圖、柱狀圖、大餅圖等等統計圖。如果你想使用PHP生成統計圖來統計數據,使用它再方便不過啦。 如果說你要親自使用GD庫來寫的話,那我只能膜拜大神啦(我不會哈

JAVA生成圖片、JAVA擷取圖片區域性內容

目前,google已經有了更好的處理JAVA圖片的工具,請搜尋:Thumbnailator    package com.ares.image.test; import java.awt.Color; import java.awt.Graphics; impor

Android之通過ContentResolver獲取手機圖片和視訊的路徑和生成路徑

1 問題 獲取手機所有圖片和視訊的路徑和生成圖片和視訊的縮圖和縮圖路徑 生成縮圖我們用的系統函式 public static Bitmap getThumbnail(ContentResolver cr, long origId, int kind, Opti

Java——使用javacv生成視訊

轉載大佬文章,以備後期再次需要,親測使用有效 新增依賴 在pom.xml中新增依賴配置 <dependencies>   <dependency>     <groupId>org.bytedeco</groupId