imagesLoaded

網頁載入圖片完成後…

這個功能需求是為了相簿使用了瀑布流計算圖片高度,因為等寬不等高所以必須等圖片實際載入完成才知道確切高度。

 

AngularJS

$timeout 的延遲時間必須足夠讓圖片載入完成,得到的高度才會是正確的

 

 

170 total views, no views today

DSLR 檔案放置計畫

數位單眼檔案整理計畫 (照片整理計畫)

目的:將數位相機拍攝照片、影片放置在網站上,方便平板、手機觀看存取

規格:

  • 可分類
  • 根據分類或自定義讀取權限
  • 照片、影片必須可在 Android, IOS 上正常觀看
  • 可直接上傳 RAW 格式照片
  • 上傳時可選擇資料夾 (搭配 Chrome 瀏覽器)

技術:

  • PHP, MySQL
  • HTML5, Javascript
  • Jpeg, PNG 圖檔格式轉檔
  • RAW 格式圖檔轉檔
  • Exif 格式存取
  • 影片轉檔

 

  1. 把檔案放上去
  2. 處理成可以在 HTML5 可以接受的格式
  3. 顯示及播放

數位單眼有什麼檔案?

大致上分為三類

  1. RAW 格式圖檔
  2. Jpeg 圖檔
  3. 影片檔 (MOV, MTS…)

觀看、分享方法

放置在網站,主要使用 HTML5 技術

使用該方法限制及前置作業

圖檔和硬片都需要縮小尺寸、重新取樣、轉換格式後才上傳至網站上

 

1多檔案及資料夾檔案上傳

 

2. 讀取相片 Exif

PHP exif_read_data()

因為使用 PHP 官方也有 exif 的功能,所以

補上 exif 後

就吐出錯誤訊息了

而且尺寸也是錯的,再次 Google 之後找到了 Exiv2 – Image metadata library and tools

FreeBSD 9.1 安裝 exiv2

CentOS 6 安裝 exiv2

就可以得到正確的資訊了

NIKON D7000 RAW

SONY NEX-5

HUAWEI P9+

 

使用 PHP 分析字串取得 Exif

參考: php-exiv2/Exiv2ImageExplorer.php at master · joelalejandro/php-exiv2 · GitHub

 

拍攝方向

取得影片格式資訊

 

舊數位相機 MOV 格式影片轉檔

 

RAW 格式轉檔

使用 dcraw 來進行處理

FreeBSD

CentOS

 

 

將 RAW 格式轉成 JPEG

GUI

IOS 的自動旋轉問題

取消 fancybox 的 click

  • http://jsfiddle.net/DigitalBiscuits/DBvt7/211/

 

 

上傳即時更新

瀑布流布局

多圖處理技巧:延遲顯示、分次載入

延遲顯示 – 延遲顯示是將未出現的圖片就不載入的 Javascript 技術,一般使用 Lazy Load 來完成

分批載入 – 分批載入則是類似分頁模式,將同一頁圖檔分成數次載入。可以有顯示同頁或是分頁顯示等不同處理方式。

一般來說,對於一個相簿高達上千張圖檔需要顯示時,使用分批載入會較為恰當,因為必須考慮行動裝置硬體效能問題。

影片

Error: Unsupported sample rate 7875

早期相機影片的錄影通常使用很奇怪的格式 (相較現在的 MPEG4 來說),不是奇怪的組合就是奇怪的數值設定。如果不設定預設處理數值 ffmpeg 可能會無法支援而報錯。

例如以下範例,2004 年的 NIKON Coolpix 3200 ,影像使用 mjpeg ,聲音使用 pcm ,問題出在聲音的取樣頻率,因為早期硬體效能、儲存空間問題,所以設定為 7875Hz,而此數值 ffmpeg 是不支援轉換的,必須指定支援數值。

上傳佇列、背景轉檔

/etc/crontab

 

290 total views, 1 views today

使用 PHP 取得影音檔案資訊

如何使用 PHP 即可取得影音檔案資訊,不須借助播放程式?

參考

官網 getID3()

對象是 MP3 也不會有另外格式的檔案,不需要搞到 ffmpeg 這麼複雜。

247 total views, no views today

Smarty 3

 

Smarty 官網沒說的祕密

多層 foreach 需要一次跳出迴圈,可以使用 break 加上 需要離開的層數

 

取得檔案類型名稱 (檔案副檔名)

Is there a way in Smarty to get the file extension of a string

 

更多相關資料

[PHP]Smarty - 變數處理

148 total views, no views today

使用 PHPWord 產生 MySQL 資料庫結構文件

開發一個含資料庫的網站,不論是個人興趣或是工作需求,事後的文件製作都是「神煩」的。

至少我就不喜歡另外寫資料結構說明文件,尤其是使用 phpMyAdmin 這種 GUI 界面操作資料庫後,就覺得如果還要花很多時間來做多餘的事情,所以我就要花更多的時間來寫一個自動產生資料庫結構文件的程式 …

大致上的想法就是把所有的說明都直接寫在資料庫內,MySQL 的資料表、欄位都有 Comment 欄位可以填寫,phpMyAdmin 的預設快速匯出也會把 Comment 匯出,因此備份以及說明可以達成一致性同步。

列出該資料庫所有資料表

資料表說明

參考: changing mysql table comment

修改資料表說明

顯示完整的資料表欄位資訊

使用 PHP 產出 docx, odt, rtf, HTML 文件

使用套件 PHPWord ,最好的學習方式就是看 samples code

觀看範例結果 samples results

  1. 下載 PHPWord 並解壓縮到網站
  2. 將 PHPWord-develop\samples\results 目錄修改為可讀寫權限
  3. 瀏覽 PHPWord-develop\samples 下拉選擇項目,點選文件類別下載

單位轉換查詢

PHPWord 預設使用的數值單位是 Twip ,想要更進一步了解可以參考 https://en.wikipedia.org/wiki/Twip

這裡有單位轉換,可以在文書編輯軟體設計後取得大致距離後再進行換算 → Topography Conversion

設定預設字型

參考至:Default font

 

完成品

Image 256

843 total views, no views today