亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Verzeichnis suchen
歡迎 目錄 快速參考圖 基本信息 服務器要求 許可協(xié)議 變更記錄 關于CodeIgniter 安裝 下載 CodeIgniter 安裝指導 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應用程序流程圖 模型-視圖-控制器 架構目標 教程 內容提要 加載靜態(tài)內容 創(chuàng)建新聞條目 讀取新聞條目 結束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調試應用程序 以CLI方式運行 管理應用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
Figuren

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

圖像處理類

CodeIgniter 的圖像處理類可以使你完成以下的操作:

  • 調整圖像大小
  • 創(chuàng)建縮略圖
  • 圖像裁剪
  • 圖像旋轉
  • 添加圖像水印

可以很好的支持三個主流的圖像庫:GD/GD2, NetPBM, 和 ImageMagick。

注意: 添加水印操作僅僅在使用GD/GD2時可用。另外,即使支持其他的圖像處理庫,但是為了計算圖像的屬性,GD是必需的。然而,將使用你制定的庫來進行圖像處理操作。

初始化類

像 CodeIgniter 的大多數(shù)類一樣,圖像處理類在你的控制器里使用 $this->load->library 方法來初始化:

$this->load->library('image_lib');

在圖像處理庫被載入后就已經(jīng)做好被使用的準備了。你將用來調用所有圖像處理方法的圖像處理庫對象是:$this->image_lib

處理一個圖像

不管你想進行何種圖像處理操作(調整大小,圖像裁剪,圖像旋轉,添加水?。?,通常過程都是一樣的。你先設置一些你想進行的圖像操作的參數(shù),然后調用四個可用方法中的一個。例如,創(chuàng)建一個圖像縮略圖:

$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 75;
$config['height'] = 50;

$this->load->library('image_lib', $config);

$this->image_lib->resize();

以上代碼告訴image_resize函數(shù)去查找位于source_image目錄且名為mypic.jpg的圖片,然后運用GD2圖像庫創(chuàng)建75 X 50像素的縮略圖。 當 maintain_ratio 選項設為可用時,生成的縮略圖將在保持縱橫比例的同時,盡可能的在寬度和高度上接近所設定的widthheight??s略圖將被命名為類似 mypic_thumb.jpg的形式

注意: 為了讓圖像類能進行所有操作,包含圖片的文件夾必須開啟可寫權限。

Note: Image processing can require a considerable amount of server memory for some operations. If you are experiencing out of memory errors while processing images you may need to limit their maximum size, and/or adjust PHP memory limits.

處理函數(shù)

有五個處理函數(shù)可以調用:

  • $this->image_lib->resize()
  • $this->image_lib->crop()
  • $this->image_lib->rotate()
  • $this->image_lib->watermark()
  • $this->image_lib->clear()

當調用成功時,這些函數(shù)會返回 TRUE, 否則會返回 FALSE. 如果調用失敗時,用以下函數(shù)可以獲取錯誤信息:

echo $this->image_lib->display_errors();

像下面這樣當調用失敗時顯示錯誤,是一個好的例子來有條件的使用處理函數(shù):

if ( ! $this->image_lib->resize())
{
????echo $this->image_lib->display_errors();
}

注意: 你可以隨意的給錯誤使用HTML的格式。像下面這樣,添加打開/關閉標記符:

$this->image_lib->display_errors('<p>', '</p>');

參數(shù)

你可以用下面的參數(shù)來對圖像處理進行調配,既而滿足你的要求。

注意,不是所有的參數(shù)都可以應用到任何得函數(shù)中。例如,x/y 軸參數(shù)只能被圖像裁剪使用。但是,寬度和高度參數(shù)對裁剪函數(shù)是無效的。 "可用性" 列指明了哪些函數(shù)是可以使用對應的參數(shù)的。

可用性圖列:

  • R - 調整圖像大小
  • C - 圖像裁剪
  • X - 圖像旋轉
  • W - 添加圖像水紋
參數(shù) 默認值 選項 描述 可用性
image_library GD2 GD, GD2, ImageMagick, NetPBM 設置圖像庫 R, C, X, W
library_path 設置 ImageMagick 或 NetPBM 庫在服務器上的路徑。要使用其中任何一個,你都需要設置它們的路徑 R, C, X
source_image 設置原始圖像的名字/路徑。 對路徑而言,只能是相對或絕對的服務器路徑,不能使用URL。 R, C, S, W
dynamic_output FALSE TRUE/FALSE (布爾值) 決定新圖像的生成是要寫入硬盤還是動態(tài)的存在。注意,如果是動態(tài)生成的話,圖像生成后是不能在頁面中定位的。它簡單地以header定義為image的動態(tài)圖像形式顯示在你的瀏覽器中。 R, C, X, W
quality 90 1 - 100 設置圖像的品質。品質越高,圖像文件越大 R, C, X, W
new_image None None 設置圖像的目標名/路徑。 當復制圖像時,你會用到這個參數(shù)的。這個路徑必須是相對或絕對的服務器路徑,不能是URL R, C, X, W
width None None 設置你想要得圖像寬度。 R, C
height None None 設置你想要得圖像高度 R, C
create_thumb FALSE TRUE/FALSE (boolean) 讓圖像處理函數(shù)產(chǎn)生一個預覽圖像 R
thumb_marker _thumb 指定預覽圖像的標示。它將在被插入文件擴展名之前。例如,mypic.jpg 將會變成 mypic_thumb.jpg R
maintain_ratio TRUE TRUE/FALSE (boolean) 指定是否在縮放或使用硬值的時候使圖像保持原始的縱橫比例。 R, C
master_dim auto auto, width, height 指定一個選項作為縮放和創(chuàng)建縮略圖時的主軸。例如,你想要將一張圖片縮放到100×75像素。如果原來的圖像的大小不能完美的縮放到這個尺寸,那么由這個參數(shù)決定把哪個軸作為硬值。"auto" 依據(jù)圖片到底是過高還是過長自動設定軸。 R
rotation_angle None 90, 180, 270, vrt, hor 指定圖片旋轉的角度。PHP的旋轉是逆時針的,如果想向右轉90度就得把這個參數(shù)定義為270。 X
x_axis None None 為圖像的裁剪設定X軸上的長度。例如,設為30就是將圖片左邊的30像素裁去。 C
y_axis None None 為圖像的裁剪設定Y軸上的長度。例如,設為30就是將圖片頂端的30像素裁去。 C

在配置文件中設置參數(shù)

如果你不喜歡用以上的方式設置參數(shù),你還能通過配置文件來設置它們。只要創(chuàng)建一個名為image_lib.php的文件, 在該文件中加入一個 $config 數(shù)組。 然后將這個文件保存到: config/image_lib.php ,它將會被自動調用。 如果你將參數(shù)保存在配置文件里,你就不需要再使用 $this->image_lib->initialize 函數(shù)。

$this->image_lib->resize()

這個圖像大小調整函數(shù)讓你能調整原始圖像的大小,創(chuàng)建一個備份(調整過的和未調整過的),或者創(chuàng)建一個縮略圖。

創(chuàng)建一個備份和創(chuàng)建一個縮略圖之間沒有實際上的區(qū)別,除了縮略圖的文件名會有一個預定義的后綴(如, mypic_thumb.jpg)。

所有列在上面表中的參數(shù)對這個函數(shù)可用,除了這三個:rotation_angle, x_axis, and y_axis。

創(chuàng)建一個縮略圖

resize函數(shù)能用來創(chuàng)建縮略圖(并保留原圖) 只要你把這個參數(shù)設為TRUE:

$config['create_thumb'] = TRUE;

這一個參數(shù)決定是否創(chuàng)建一個縮略圖。

創(chuàng)建一個備份

resize函數(shù)能創(chuàng)建一個圖像的備份(并保留原圖) 只要你通過以下參數(shù)設置一個新的路徑或者文件名:

$config['new_image'] = '/path/to/new_image.jpg';

注意以下規(guī)則:

  • 如果只指定新圖像的名字,那么它會被放在原圖像所在的文件夾下。
  • 如果只指定路徑,新圖像會被放在指定的文件夾下,并且名字和原圖像相同。
  • 如果同時定義了路徑和新圖像的名字,那么新圖像會以指定的名字放在指定的文件夾下。

調整原圖像的大小

如果上述兩個參數(shù)(create_thumb, and new_image)均未被指定,resize函數(shù)的處理結果將直接作用于原圖像。

$this->image_lib->crop()

crop函數(shù)的用法與resize函數(shù)十分接近,除了它需要你設置用于裁剪的X和Y值(單位是像素),如下:

$config['x_axis'] = '100';
$config['y_axis'] = '40';

前面那張表中所列的所有參數(shù)都可以用于這個函數(shù),除了這些:rotation_angle, width, height, create_thumb, new_image.

這是一個如何裁剪一張圖片的示例:

$config['image_library'] = 'imagemagick';
$config['library_path'] = '/usr/X11R6/bin/';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['x_axis'] = '100';
$config['y_axis'] = '60';

$this->image_lib->initialize($config);

if ( ! $this->image_lib->crop())
{
????echo $this->image_lib->display_errors();
}

注意:如果沒有一個可視化的界面,是很難裁剪一張圖片的。因此,除非你打算制作這么一個界面,否則這個函數(shù)并不是很有用。事實上我們(譯注:指Ellislab公司,CodeIgniter的發(fā)行者)在自己開發(fā)的CMS系統(tǒng)ExpressionEngine的相冊模塊中添加的一個基于JavaScript的用戶界面來選擇裁剪的區(qū)域。

$this->image_lib->rotate()

rotate()函數(shù)需要通過參數(shù)設置旋轉的角度:

$config['rotation_angle'] = '90';

以下是5個可選項:

  1. 90 - 逆時針旋轉90度。
  2. 180 - 逆時針旋轉180度。
  3. 270 - 逆時針旋轉270度。
  4. hor - 水平翻轉。
  5. vrt - 垂直翻轉。

下面是旋轉圖片的一個例子:

$config['image_library'] = 'netpbm';
$config['library_path'] = '/usr/bin/';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['rotation_angle'] = 'hor';

$this->image_lib->initialize($config);

if ( ! $this->image_lib->rotate())
{
????echo $this->image_lib->display_errors();
}

$this->image_lib->clear()

clear函數(shù)重置所有之前用于處理圖片的值。當你用循環(huán)來處理一批圖片時,你可能會想使用它。

$this->image_lib->clear();

?

圖像水印處理

水印處理功能需要 GD/GD2 庫的支持.

水印處理的兩種類型

你可以使用以下兩種圖像水印處理方式:

  • Text: 水印信息將以文字方式生成,要么使用你所指定的TrueType字體,要么使用GD庫所支持的內部字體。如果你要使用TrueType版本,那么你安裝的GD庫必須是以支持TrueType的形式編譯的(大多數(shù)時候是,不是所有)。
  • Overlay: 水印信息將以圖像方式生成,新生成的水印圖像(通常是透明的 PNG 或者 GIF)將覆蓋在原圖像上.

水印處理一個圖像

類似使用其他類型圖像函數(shù)(resizing, cropping, and rotating), 你也要對水印處理函數(shù)進行參數(shù)設置來生成你要得結果. 例子如下:

$config['source_image'] = '/path/to/image/mypic.jpg';
$config['wm_text'] = 'Copyright 2006 - John Doe';
$config['wm_type'] = 'text';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_font_size'] = '16';
$config['wm_font_color'] = 'ffffff';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'center';
$config['wm_padding'] = '20';

$this->image_lib->initialize($config);

$this->image_lib->watermark();

上面的例子是使用16像素 True Type 字體來生成文本水印"Copyright 2006 - John Doe" 該水印將出現(xiàn)在離圖像底部20像素的中底部位置,

注意: 當調用圖像類處理圖像時,任何目標圖片文件必須有 "寫入"的權限, 例如:777.

水印處理參數(shù)

這個表里列舉了兩種水印處理 (text or overlay) 的可設置的參數(shù)

參數(shù) 默認值 選項 描述
wm_type text text, overlay 設置想要使用的水印處理類型.
source_image 設置原圖像的名字和路徑. 路徑必須是相對或絕對路徑,但不能是URL.
dynamic_output FALSE TRUE/FALSE (布爾值) 決定新的圖片文件應該被寫入磁盤還是動態(tài)生成。說明: 如果你選擇動態(tài)生成, 那么每次就只能顯示一張圖片, 而且它還不能被定位在頁面上, 僅僅是把原始圖片動態(tài)輸出到瀏覽器中,并且?guī)蟟mage header.
quality 90 1 - 100 設置圖片的質量。數(shù)字越大,質量越高, 文件就越大。
padding 一個數(shù)字 填充量, 以像素為單位, 在實際應用中將被設置為水印與圖片邊緣的距離。
wm_vrt_alignment bottom top, middle, bottom 設置水印圖像的垂直對齊方式。
wm_hor_alignment center left, center, right 設置水印圖像的水平對齊方式。
wm_hor_offset 你可以指定一個水平偏移量(以像素為單位)用于設置水印的位置。偏移量通常是向右移動水印, 除非你把水平對齊方式設置為"right", 那么你的偏移量將會向左移動水印。
wm_vrt_offset 你可以指定一個垂直偏移量(以像素為單位)用于設置水印的位置。偏移量通常是向下移動水印, 除非你把垂直對齊方式設置為"bottom", 那么你的偏移量將會向上移動水印。

Text參數(shù)

這個表格顯示了Text類型水印的可用參數(shù)。

參數(shù) 默認值 選項 描述
wm_text 你想作為水印顯示的文本。通常是一份版權聲明。
wm_font_path 你想使用的TTF字體在服務器上的路徑。如果你沒有使用這個選項,系統(tǒng)將使用原生的GD字體。
wm_font_size 16 文字的大小。 說明: 如果你沒有使用上面的TTF字體選項,那么這個數(shù)值必須是 1-5 之間的一個數(shù)字。否則, 你可以使用任意一個用于你的字體的有效像素大小。
wm_font_color ffffff 字體顏色,以十六進制給出。注意, 你必須給出完整的6位數(shù)的十六進制值(例如993300), 而不是3位數(shù)的簡化值(例如fff)。
wm_shadow_color 陰影的顏色, 以十六進制給出。如果此項為空,那么陰影將不會被使用。注意, 你必須給出完整的6位數(shù)的十六進制值(例如993300), 而不是3位數(shù)的簡化值(例如fff)。
wm_shadow_distance 3 陰影與文字之間的距離(以像素為單位)。

Overlay 參數(shù)

這個表格顯示了Overlay類型水印的可用參數(shù)。

參數(shù) 默認值 選項 描述
wm_overlay_path 你想要用作水印的圖片在你服務器上的路徑。只在你使用了overlay方法時需要。
wm_opacity 50 1 - 100 圖像不透明度(opacity)。你可以指定你的水印圖片的不透明度(例如transparency)。這將使水印模糊化,從而不會掩蓋住底層原始圖片的細節(jié)。通常設置為50。
wm_x_transp 4 一個數(shù)字 如果你的水印圖片是一個PNG或GIF圖片, 你可以指定一種顏色用來使圖片變得"透明"。這項設置(以及下面那項)將允許你指定這種顏色。它的原理是, 通過指定"X"和"Y"坐標值(從左上方開始測量)來確定圖片上對應位置的某個像素, 這個像素所代表的顏色就是你要設置為透明的顏色。
wm_y_transp 4 一個數(shù)字 與前一個選項一起, 允許你指定某個像素的坐標值, 這個像素所代表的顏色就是你要設置為透明的顏色。

?

翻譯貢獻者: aykirk, bnlt, Hex, huangnaiang, lamtin, sydcurie, szlinz, tangjianft, yinzhili
最后修改: 2012-03-07 14:09:27
Vorheriger Artikel: N?chster Artikel: