沒穿方服

封存

顯示╱隱藏內文

有一份腳本,裡面全部字幕要個別做成 PNG 圖檔。於是美工一句一句改字、裁切、存檔……倒還能準時下班就是…… 我該不該告訴他,這種事可以用 Photoshop 的自動化作業 / 建立資料導向圖像批次處理呢?

其實多講也沒人聽啦,所以我做了一套示範檔案,有需要再看說明修改即可。檔案在這裡 (DivShare),功能如下:依照文字檔的內容,把多張圖片套上框、加上文字、指定檔名存成 PNG

套框,加上文字

直接使用步驟 :

  1. 開啟「資料導向圖像.psd」
  2. 選擇「檔案」-「讀入」-「變數資料集…」- 讀入「範例資料集.txt」 讀入範例資料集.txt
    • 編碼:Unicode (UTF-8)
    • 勾選「使用第一欄作為資料集的名稱」
    • 勾選「取代現有的資料集」
  3. 選擇「檔案」-「轉存」-「資料集作為檔案…」 將資料集轉存成檔案
    就會自動產生一堆 psd 檔了。
    • 資料集:全部資料集
    • 檔案命名:資料集名稱
  4. 選擇「檔案」-「自動」-「批次處理…」  
    修剪剛剛產生的 psd 檔,然後存成 PNG
    • 組合、動作:先在「動作」面板(Alt+F9)的「載入動作…」把 bootleq.atn 載入,然後選擇「修剪 -PNG」
    • 來源、目的地:選擇「資料夾」
    • 勾選「忽略動作的〝另存新檔〞指令」
    • 檔案命名:只要「文件名稱」+「副檔名」 即可

 

要改內容的話怎麼辦?

修改「範例資料集.txt」或「資料導向圖像.psd」。看懂下圖各變數在 psd 和 txt 之間的關係,再打開 Photoshop 的「影像」-「變數」看看怎麼設,應該就知道怎麼改了。變數跟圖層有對應關係

參考:Adobe 的說明 自動化作業 / 建立資料導向圖像,中文版 PDF 手冊在 http://help.adobe.com/zh_TW/Photoshop/10.0/photoshop_cs3_help.pdf

ie6 有時可以看到驗證碼 Opera 上的樣子

2008-07-01:不需要自己亂改了,Blogger in draft 已提供 Embedded comment form 來做這件事。中文改造法可參考 小Ken思路不轉彎: [Blogger in draft] 新功能:Embedded Comment Form和Star Ratings安裝
我的情形是在後台設定意見表單位置,然後找地方插入 <b:include data='post' name='comment-form'/> 就差不多了。

偶然逛到一個 blog: fREE2Software 發現他的留言表單就直接擺在頁面下方(首頁沒放,單篇文章才有),這配置我在 google 上找了很久都沒見過,現在才看到活生生、還會跑的。立刻看了他 blogger hack 分類下的文章,可惜暫時沒有寫到,於是自己試做,結果摘要:

  1. 寫成一般的 JavaScript,用修改模板的方式套用。
  2. 使用流程:按下留言按鈕後,才在頁面上顯示留言表單(iframe)。
  3. 未解決問題:ie 有時候看不到「視覺驗證」圖片。
  4. Firefox 頁面未完全載入時,開出來的 iframe 內容不保證正確。要修正的話,可以等頁面完全載入再用 JavaScript 改留言按鈕的 onclick 屬性。
  5. 表單還是很醜怪…… 所以我最後還是沒用它

試用方式:

  1. 在模板的 </header> 前面加上:
    <script type='text/javascript'><!--
      var iframeHereHeight = '210px';   // iframe 高度
      function tryCommentHere(a,href) {
        // 若已有 iframe, 只做展開/收合
        if( a.nextSibling && a.nextSibling.nodeName.toLowerCase()=='iframe' && a.nextSibling.src==href ) {
          if( a.nextSibling.style.display != 'none'  ) {
            a.nextSibling.style.display = 'none';
          }
          else {
            a.nextSibling.style.display = 'block';
          }
          return;
        }
        // 若沒有 iframe, 建立新的 iframe
        var newIframeNode = document.createElement('iframe');
        newIframeNode.setAttribute('src', href);
        newIframeNode.setAttribute('style', 'display:"block";');
        newIframeNode.setAttribute('margin', 'auto');
        newIframeNode.setAttribute('width', '90%');
        newIframeNode.setAttribute('height', iframeHereHeight);
        newIframeNode.setAttribute('frameborder', '1');
        newIframeNode.setAttribute('scrolling', 'auto');
      if( !a.nextSibling ) { a.parentNode.appendChild(newIframeNode); }
      else {
        a.parentNode.insertBefore( newIframeNode, a.nextSibling );
      }
    };
    //--></script>
  2. 然後找到「留下意見」連結的標記,類似 <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>留下意見</a>,把 onclick 內容改為 onclick="tryCommentHere(this, this.href); return false;" 就行了。

拜託,哪有人線上改程式的

要測試是不會另外開一個 blog 喔

foobar2000 發佈了新版本 0.9.5,不過常被質疑的 Shuffle 行為還是沒變,狀況如下:

選擇 Shuffle (tracks) 播了幾首歌之後,回某一首重聽(一般是點滑鼠兩下),就會發現接下來播放的順序是固定的,跟剛剛聽過的一樣。理由可參考官網 FAQ,簡單講就是 Shuffle 只對播放清單做一次洗牌,所以如果要重聽某一首,然後再次打亂順序的話,有以下選擇:

  1. 重開 foobar2000
  2. 切換 Shuffle 選項(albums / folders / tracks)
  3. 一開始就不用 Shuffle,心存感激地改用 Random(0.9.5 把這選項加回來了)

以下作法沒用:

  1. 選擇 Playback 中的 Random,隨機跳下一首,再改回 Shuffle
  2. 選擇 Playback → Order 中的 Random,下一首後再改回 Shuffle

 

不過我 Order 改 Random 後卻發現 Previous(上一首)功能會失效變成停止,這樣太吃虧了(如果其他人都正常的話),所以最後還是放棄 Random,改用以下折衷法:

設定兩組快捷鍵做 Shuffle (folders) → Next 和 Shuffle (tracks) → Next

Shortcut 設定

從此還是用 Shuffle (tracks) 播放,順序重複的時候再打開 foobar2000 按下兩組熱鍵。缺點是:

  1. Preference 裡會有圖中的 conflict(衝突)警告,詳見 Hydrogenaudio 知識庫 文件 Avoiding_conflicts
  2. 必須叫出 foobar2000 視窗(熱鍵設 Global 好像會把第二個動作蓋掉)。
  3. 得分成兩組熱鍵(併為一個鍵 經測試沒效)。
  4. 最致命的是把 Shuffle 搞得跟 Random 一樣,會播到重複的曲子,這有道理嗎?