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
結果怪怪的,沒有效果,真怪



  1. <?php
  2. $imgSize = GetImageSize("15.jpg");
  3.               $width = $imgSize[0];
  4.               $height = $imgSize[1];
  5.               $img = ImageCreateFromJPEG("15.jpg");
  6.               $imgnew = $img;
  7.               for ($y=0; $y<$height; $y++) {
  8.                       for ($x=0; $x<$width; $x++)        {
  9.                                       ##取點索引
  10.                                       $index = ImageColorAt($img,$x,$y);
  11.                                       ##取 RGB 顏色
  12.                                       $rgb = ImageColorsForIndex($img,$index);
  13. $R= 255 - $rgb[red];
  14. $G= 255 - $rgb[green];
  15. $B= 255 - $rgb[blue];
  16. imagecolorset($img,$index,$R,$R,$B);
  17.                 }
  18.         }
  19. imagepng ($img,"15-2.png");
  20. echo "Done.";
  21. ?>
複製代碼

作者: 阿輝    時間: 2005-5-8 17:43
標題: Re: [求助] PHP 處理影像的部分
圖像反相部分完成了 @_@

沒有寫 GUI 部分,可能寫的也很不漂亮
不過可以正常 Work 了


  1. <?php
  2. ##輸出輸入檔案名稱
  3. $input = "15.jpg";
  4. $ouput = "15-2.png";

  5. ##取得圖像資訊 (長,寬)
  6. $imgSize = GetImageSize($input);
  7. $width = $imgSize[0];
  8. $height = $imgSize[1];

  9. $img = ImageCreateFromJPEG($input);

  10. for ($y=0; $y<$height; $y++) {
  11.     for ($x=0; $x<$width; $x++)        {

  12.     ##取點索引
  13.     $index = ImageColorAt($img,$x,$y);
  14.     ##取 RGB 顏色
  15.     $rgb = ImageColorsForIndex($img,$index);
  16.     ##取反相色值
  17.     $R= 255 - $rgb[red];
  18.     $G= 255 - $rgb[green];
  19.     $B= 255 - $rgb[blue];
  20.         ##將反相後的顏色值轉回 int col
  21.     $color = imagecolorallocate($img, $R, $G, $B);
  22.         ##將顏色依座標畫上圖像
  23.     imagesetpixel($img,$x,$y,$color);
  24.                 }
  25.         }
  26.        
  27. ##輸出檔案
  28. imagepng ($img,$ouput);

  29. echo "處理完成。<br><br>";
  30. echo "<image src=".$input."> ";
  31. echo "<image src=".$ouput."><br><br>";
  32. ?>

複製代碼





歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/) Powered by Discuz! X2.5