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

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

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請(qǐng) 登錄 或 注冊(cè)  找回密碼
查看原文

圖像處理類

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

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

可以很好的支持三個(gè)主流的圖像庫(kù):GD/GD2, NetPBM, 和 ImageMagick。

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

初始化類

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

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

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

處理一個(gè)圖像

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

$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的圖片,然后運(yùn)用GD2圖像庫(kù)創(chuàng)建75 X 50像素的縮略圖。 當(dāng) maintain_ratio 選項(xiàng)設(shè)為可用時(shí),生成的縮略圖將在保持縱橫比例的同時(shí),盡可能的在寬度和高度上接近所設(shè)定的widthheight??s略圖將被命名為類似 mypic_thumb.jpg的形式

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

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ù)

有五個(gè)處理函數(shù)可以調(diào)用:

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

當(dāng)調(diào)用成功時(shí),這些函數(shù)會(huì)返回 TRUE, 否則會(huì)返回 FALSE. 如果調(diào)用失敗時(shí),用以下函數(shù)可以獲取錯(cuò)誤信息:

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

像下面這樣當(dāng)調(diào)用失敗時(shí)顯示錯(cuò)誤,是一個(gè)好的例子來有條件的使用處理函數(shù):

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

注意: 你可以隨意的給錯(cuò)誤使用HTML的格式。像下面這樣,添加打開/關(guān)閉標(biāo)記符:

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

參數(shù)

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

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

可用性圖列:

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

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

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

$this->image_lib->resize()

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

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

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

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

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

$config['create_thumb'] = TRUE;

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

創(chuàng)建一個(gè)備份

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

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

注意以下規(guī)則:

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

調(diào)整原圖像的大小

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

$this->image_lib->crop()

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

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

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

這是一個(gè)如何裁剪一張圖片的示例:

$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();
}

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

$this->image_lib->rotate()

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

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

以下是5個(gè)可選項(xiàng):

  1. 90 - 逆時(shí)針旋轉(zhuǎn)90度。
  2. 180 - 逆時(shí)針旋轉(zhuǎn)180度。
  3. 270 - 逆時(shí)針旋轉(zhuǎn)270度。
  4. hor - 水平翻轉(zhuǎn)。
  5. vrt - 垂直翻轉(zhuǎn)。

下面是旋轉(zhuǎn)圖片的一個(gè)例子:

$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ù)重置所有之前用于處理圖片的值。當(dāng)你用循環(huán)來處理一批圖片時(shí),你可能會(huì)想使用它。

$this->image_lib->clear();

?

圖像水印處理

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

水印處理的兩種類型

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

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

水印處理一個(gè)圖像

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

$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像素的中底部位置,

注意: 當(dāng)調(diào)用圖像類處理圖像時(shí),任何目標(biāo)圖片文件必須有 "寫入"的權(quán)限, 例如:777.

水印處理參數(shù)

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

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

Text參數(shù)

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

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

Overlay 參數(shù)

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

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

?

翻譯貢獻(xiàn)者: aykirk, bnlt, Hex, huangnaiang, lamtin, sydcurie, szlinz, tangjianft, yinzhili
最后修改: 2012-03-07 14:09:27
Artikel sebelumnya: Artikel seterusnya: