« 2005/05, 112 期 PChome 雜誌 | 首頁 | 原來這就是Trackback »
2005年05月09日
PHP 程式分享: 自製隨機照片
原本存放在 Yahoo! 奇摩相簿裡的照片, 經過他們系統的幾次搬遷、重整之後, 之前辛苦寫的照片說明已不復存在, 相片順序也變得一團亂... 從此不敢再對網路上的免費服務寄予厚望...
Coppermine Gallery 是一套相當好用的相簿套件, 尤其是它的批次處理功能: 只要將照片 FTP 到 albums 目錄底下, 點幾下網頁就幫你處理到好. 比起以前傳統相簿一張張照片的上載方式, 真的是輕鬆又愉快! (相簿實例: Jamyy's Gallery)
雖然也可以使用如: flickr 這類網路服務或其他的網頁套件來達成類似本站首頁的“隨機照片”效果, 但畢竟自己架站就是可以恣意享受 DIY 的樂趣嘛, 何不寫個程式來玩玩? :)
環境說明:Linux + PHP + MySQL + Coppermine Gallery
成品說明: (從 Coppermine
相簿隨機取出縮圖圖形, 並於底部顯示該圖所屬的相簿名稱)
使用說明:於網頁中使用 img tag, 並在 src 中引用 php 程式即可. (如: <img src="show.php"> )
程式碼:
程式說明:
- 連接 MySQL 裡的 Coppermine 相簿資料庫, 取出 cpg133_pictures 照片資料檔的 pid (照片的系統流水編號) 之最大與最小值, 以介定亂數的範圍.
- 以亂數取出照片資料: filepath (路徑)、filename (檔名)、title (相簿名稱), 並檢查該照片的縮圖 ( "thumb_" + 檔名) 是否存在.
- 因為我的相簿名稱都是 "yymmdd 相簿名稱" 這種格式, 而我只要取出日期之後的字串, 所以才用 substr 函數處理.
- 輸出 $thumb 圖檔. 底部貼上黑色半透明 (imagecolorallocatealpha, 50%) 方塊, 再打上白色 TTF 字體的相簿名稱.
- 以 imagettfbbox() 函數取得文字的寬度 ($ttfbox[2]), 再以圖片的寬度 ($width) 減去文字寬度讓文字靠右, 以 imagettftext() 函數輸出文字.
修改說明:
- *mysql_server* => 若 MySQL Server 位於本機, 通常為 localhost
*mysql_account* => MySQL 帳號, 必須要有存取 Coppermine 相簿資料庫的權限
*mysql_password* => 對應上述 MySQL 帳號的密碼 - *your_gallery_database_name* => 您的 Coppermine 相簿所使用的資料庫名稱
- *path_to_your_album* => Coppermine 相簿的 albums 路徑 (如: /var/www/html/cpg133/albums/ )
- *your_ttf_file* => TTF 檔案的路徑 (如: /usr/share/fonts/zh_TW/TrueType/abc.ttf )
參考資料:
補充:
- 如果您使用的是 PHP Based 網頁, 也可以參考 may24 有個不錯的方案喔!
- 上例圖片文字使用 AR PL ShanHeiSun Uni (uming.ttf)
Posted by Jamyy at 2005年05月09日 16:38
Trackback Pings
TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/80