PALMisLIFE 討論區
標題:
[求助] PHP 處理影像的部分
[列印本頁]
作者:
阿輝
時間:
2005-5-7 22:38
標題:
[求助] PHP 處理影像的部分
想問一下有沒有人有這方面經驗
能不能用 PHP 來處理影像,不是說簡單地加工
是說像是將圖片每像素 RGB 值做處理之類的
例如將像素的 RGB 值做數據統計
重新計算後再寫回成新圖片這樣的
我也還在翻 PHP 這方面的資料,想看看有沒有朋友有這方面經驗
怕到頭來一場空
因為一些因素,不打算用 C / VB 之類的來處理
包括用 PHP Call C 這樣的方式 >''<
作者:
cclien
時間:
2005-5-7 22:48
標題:
Re: [求助] PHP 處理影像的部分
請愛用 GD Library
作者:
Dragoon
時間:
2005-5-8 00:34
標題:
Re: [求助] PHP 處理影像的部分
gb 中的這個嗎?
http://tw2.php.net/manual/tw/function.imagecolorat.php
gd 還蠻常用的,但是要 rgb 做運算沒啥經驗。
這個 function 看起來能做的事就很多了哩。
阿輝你要做什麼內容啊?
最近要在 php 內輸出 excel 報表,歷經 1 個月在 php 上受盡折磨,搞了 com 也搞了 php-pear-excel。
com 是常常把 word 跟 excel 搞當在背景,然後也超慢的,而且抓不到當的原因,當初一開始評估以為是最理想的作法,結果第一個放棄,
而 php-pear-excel 則是相當不成熟,function 不齊也就算了,很多 function 還會弄出會把 excel 弄當的 .xls!
最後 ... 回到 php-pear-excel 的發源地 Perl 的 Spreadsheet::WriteExcel,哇!超順暢!早用這個就不用浪費這麼多時間了!
結果我這個專案是在 Win32 上,核心是 PHP,背後搞了 Perl ,ImageMagick,pdflib .... 弄得超複雜的 ...
不過能解決問題就好 ...
有機會再來玩 Perl 的 Win32::OLE 呼叫 excel,不過有了 PHP 的經驗,實在不敢把這個功能當作重要的模組,當一個 excel 在背景就是 20-30mb,主機被當幾個就死了 ...
一點小心的分享 ...
[
Last edited by Dragoon on 2005-5-8 at 00:52
]
作者:
scrazy
時間:
2005-5-8 11:26
標題:
Re: [求助] PHP 處理影像的部分
影像處理我建議是image magick,
縮圖效果、功能都勝過gd不少
作者:
阿輝
時間:
2005-5-8 12:55
標題:
Re: [求助] PHP 處理影像的部分
試著寫了一個圖片反相處理的 PHP
結果怪怪的,沒有效果,真怪
<?php
$imgSize = GetImageSize("15.jpg");
$width = $imgSize[0];
$height = $imgSize[1];
$img = ImageCreateFromJPEG("15.jpg");
$imgnew = $img;
for ($y=0; $y<$height; $y++) {
for ($x=0; $x<$width; $x++) {
##取點索引
$index = ImageColorAt($img,$x,$y);
##取 RGB 顏色
$rgb = ImageColorsForIndex($img,$index);
$R= 255 - $rgb[red];
$G= 255 - $rgb[green];
$B= 255 - $rgb[blue];
imagecolorset($img,$index,$R,$R,$B);
}
}
imagepng ($img,"15-2.png");
echo "Done.";
?>
複製代碼
作者:
阿輝
時間:
2005-5-8 17:43
標題:
Re: [求助] PHP 處理影像的部分
圖像反相部分完成了 @_@
沒有寫 GUI 部分,可能寫的也很不漂亮
不過可以正常 Work 了
<?php
##輸出輸入檔案名稱
$input = "15.jpg";
$ouput = "15-2.png";
##取得圖像資訊 (長,寬)
$imgSize = GetImageSize($input);
$width = $imgSize[0];
$height = $imgSize[1];
$img = ImageCreateFromJPEG($input);
for ($y=0; $y<$height; $y++) {
for ($x=0; $x<$width; $x++) {
##取點索引
$index = ImageColorAt($img,$x,$y);
##取 RGB 顏色
$rgb = ImageColorsForIndex($img,$index);
##取反相色值
$R= 255 - $rgb[red];
$G= 255 - $rgb[green];
$B= 255 - $rgb[blue];
##將反相後的顏色值轉回 int col
$color = imagecolorallocate($img, $R, $G, $B);
##將顏色依座標畫上圖像
imagesetpixel($img,$x,$y,$color);
}
}
##輸出檔案
imagepng ($img,$ouput);
echo "處理完成。<br><br>";
echo "<image src=".$input."> ";
echo "<image src=".$ouput."><br><br>";
?>
複製代碼
歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/)
Powered by Discuz! X2.5