Homepage



E
everything that I want to say will be placed here, including any interesting, funny or special. Hope you will love here.







I also want to share you some goods here, you can download it from the bottom of article!




And, enjoy these! Wish you have a happy day:))))

Introduction to programming.

posted May 4, 2017, 9:55 AM by YUEN WU   [ updated May 4, 2017, 10:02 AM ]

Hello everyone,
大家好,

Since I am being a software engineer for more than five years, rather than a graphic designer, I decide to start sharing some programming skills (C++11) here. Hope you guys may love it :)
我己經身為軟體工程師超過五年了, 不再是圖像設計師...所以我決定開始分享程式設計的經驗(C++11), 希望你們會喜歡 :)

透過ffmpeg將flv/f4v的格式轉成mp4 / Convert video container from flv/f4v to mp4 using ffmjpegd

posted Oct 11, 2014, 9:40 PM by YUEN WU   [ updated Oct 11, 2014, 11:08 PM ]

Recently I am trying to convert .flv/.f4v to .mp4 for my Apple devices. First thing we have to know is that: the codecs in both flv/f4v and mp4 are the same H.264 encoding. The difference is container format. Hence we only need to convert the container to mp4.
最近試著想要把.flv/.f4v轉成mp4給我的Apple裝置使用。首先呢要先知道這兩個檔案差別在哪裡,實際上直插在包裝格式不一樣而已,他們都是H.264壓縮的。所以呢,我們只需要轉包裝格式就好了。

*If you have split files, you could also found the solution in this article.
*如果你有被分割的檔案,你也可以在這片文章中找到答案。

Download ffmjpeg static build here: https://www.ffmpeg.org/download.html
從這邊下載靜態鏈接的ffmpeg: https://www.ffmpeg.org/download.html

Tips for join split files into one
如何把分割的檔案合併成一個

The simple way to join these split files into one
最簡單的方法就是用ffmpeg合併成一個

    > ffmjpeg -i filelist.txt -f concat -c copy output.f4v

where filelist.txt describes the split files in ordered. For example:
其中filelist.txt是描述要被合併的檔案,例如:
    
    file '1.f4v'
    file '2.f4v'
    file '3.f4v'

Notice that, the video/audio codecs must be the same configured in these files.
這邊要注意的是,這些影片檔的壓縮方式必須要是一樣的。


Tips for convert container 
如何轉換影片包裝格式

It's easy to convert container from f4v to mp4 just using ffmjpeg like
用ffmpeg可以簡單的將影片的包裝格式轉換,就像是這樣:

    > ffmjpeg -i input.f4v -c copy -copyts output.mp4


Hopes you guys can enjoy your movies!

Rynn Hand Painted

posted Dec 12, 2013, 6:30 PM by YUEN WU   [ updated Dec 12, 2013, 6:31 PM ]

最近想來成立一個手繪粉絲頁面~主要是想讓自己能更用心的生活,感受日常生活中的細節和靈感,也希望自己的創作能夠為你們的生活帶來更多的快樂

Recently, i have a hand-painted fan page! The main idea is that to feel and think about daily life, to find out much more detail and inspiration. Also wanna share my create for you guys and bring you hopes and happiness

By the way, sometimes i will pick a lucky fan who will have a REAL paint! ho ho ho~

Distribute Qt App on Mac

posted Sep 16, 2012, 8:05 PM by YUEN WU   [ updated Sep 16, 2012, 9:13 PM ]

最近剛好有點時間透過 Qt 寫了一個小工具,想說來給別的 Mac 使用者使用,由於 Qt Creator 預設 release 程式的函數庫會用絕對路徑(Absolute Path)來連結,因此如果編譯出來的應用程式給別的 Mac 使用者使用是絕對不行的,因為他們大多數都沒有安裝 Qt 的 Library 。

那這個時候該怎麼辦呢?

當然,你也可以選擇使用 Static Link 的方式來轉發你的應用程式,這個部分我自己是沒有實際使用過,原因不外乎就是太麻煩了! 而且還要重新 Compile 函數庫,這就見仁見智了,有興趣的朋友可以再研究研究,本文章主要是討論動態連結的部分。

在 Windows 平台上,最常見的動態函數庫就是 DLL ,應用程式通常會去尋找執行目錄下的函數庫,因此只要把所用到的 DLL 移動到應用程式旁邊就可以了,但是在 Mac 上則不能這樣做,因為 Qt Creator 在 Mac 上會預設使用絕對路徑(第一段有提到)來連結函數庫,因此,我們必須使用 install_name_tool 和 otool 兩個程式來編輯我的函數庫引用的位置。

這又是一個噩夢的開始。

因為一個程式很少有機會只引用一個函數庫,如此一來,你必須使用 install_name_tool 來替換好幾次才能完成資料庫的連結,聰明的你或許想到寫 Shell Script 來做這件事情,但是人們就是因為想偷懶而進步,我開始尋找有沒有更快速方便的方法來完成這件事情,因為我們絕對不會是第一個人想到這件事情的。在 Qt 官方文件當中有一篇文章在介紹如何在 Mac 上開發應用程式( http://qt-project.org/doc/qt-4.8/deployment-mac.html ),裡面有提到,Qt SDK 在安裝的時候也一併安裝的一個小工具,macdeployqt,這程式在 $QTDIR/bin/macdeployqt 底下,我們可以透過它快速地佈署 Qt 的 Frameworks,只要透過指令

./macdeployqt yourapp.app 

就能夠一鑑完成動態函數庫(亦有Frameworks)的佈署。如此之方便你怎麼能不知道呢?

雖然他夠方便、夠聰明,但是他會把所有的函數庫、Frameworks、Plugins 都一併包進你的應用程式裡面,這樣應用程式就會變得很肥,這個時候如果你知道你自己用到哪間函數庫和 Frameworks,你就只要從 yourapp.app/Content/Frameworks/ 底下將不需要的 Frameworks 刪掉就可以了,是不是很簡單呢?

Gadget: Facebook Comment

posted Mar 19, 2012, 2:06 AM by YUEN WU   [ updated Mar 19, 2012, 2:09 AM ]


因為Google Sites裡面沒有留言的機制,因此想說透過Facebook的Plugin來實現這個功能。接著就上網查了一下到底要怎麼用Facebook這個plugin。找到了他們說明網址(如下)


查到了該plugin大致上運作的原理,簡單來說就是連結到fb所提供的jsapi去取得所需要的資源,然後又可以分為用HTM5的方式,或者是XML namespace的方式。比較建議會用XML namespace的方式去做,因為目前瀏覽器能夠支援HTML5的還不是說非常普及。

在FB的網頁上面可以取得大致上的code是這樣run的:
1.首先你要include他們的sdk
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
通常這段程式碼是貼在<body>裡面的,官方說建議貼在<body>的後面。

2.把你的<html>標籤指定namespace "fb"
<html xmlns:fb="http://ogp.me/ns/fb#">

3.將你想要擺放這個plugin的位置加上這行code
<fb:comments href="http://example.com" num_posts="2" width="470"></fb:comments>

哈!這樣就完成了,看起來很簡單吧,沒錯~在一般的網頁下方常的簡單,但是如果你是要在Google Site用,那就不好了...在Google Sites裡面,你不能輕易的插入一段有使用到Javascript的HTML code,必須要透過Google小工具 (Gadget)來實現。那麼Gadget又是一個怎樣的東西呢?剛入門的人可以從下面這個連結去看看。


簡單來說分成兩個部分,用XML描述的部分是給新增Gadget填資料用的,實際在用的是在後半段(被<Content Type>包起來的code)。被這個標籤包起來的code就可以是一段HTML程式碼,可以插入Javascript,當你編輯好之後就存成.XML檔案然後上傳至server,新增小工具的時候就透過這個網址就能新增自定小工具了。

這邊先來示範一下怎麼用(就以Google Sites為例子),首先先將Gadget上傳至server準備好,並且複製他的鏈結網址



接著去編輯頁面的地方按下「插入」->「更多小工具」->「依據網址新增小供去」,然後將剛剛的連結填入按下確定,



如果正確無誤的話應該會出現一個設定框,其中的網址可以留白,如果留白的話會取用當下的網址,第二個數量是顯示留言的數量,地三個則是寬度,第四個是選擇主題,選擇light的話自會是黑色的,如果選擇dark的話,則字會是白色的。然後下半部的「顯示」是Google自定小工具一定會跑出來的項目,寬度則必須比設定此Gadget還大,高度也是。可是Facebook comment plugin是利用AJAX的方式取得資料,所以高度一定不會是固定的,因此我加上了Interval for updating gadget's height,也就是說會定時更新此Gadget的高度,所以高度設定並不是那麼重要了。


最後,要注意的一點是,一個頁面只能有一個Fb comment Gadgets,因為我是定義unique的id,所以如果有重複出現的話就會發生問題,可望在下一個版本解決!就先這樣了~分享給大家!

Wallpaper for Photoshop workspace

posted Mar 18, 2012, 8:58 AM by YUEN WU   [ updated Mar 19, 2012, 12:25 AM ]


有用Mac OS X 10.7(lion)的人都知道,在系統當中有虛擬桌面的設定,也就是一次可以新增很多個桌面視窗,也可以分別對該桌面換桌面背景,可以針對哪一種屬性的桌面視窗換不同的背景。像我自己都是在某一個特定的視窗執行Photoshop,因此,就做了一個這樣的桌布,分享給大家~

對了!順便分享一下我的桌面快照吧,使用起來就會像這樣喔。




Hello, Google Apps

posted Mar 18, 2012, 8:43 AM by YUEN WU

之前因為自己申請的網域空間已經到期,後來就因為有Facebook粉絲頁面,有點懶得去續約跟維護就放棄了使用自己的Domain name。後來在某些因緣際會下面發現了免費的Google Apps,就因此又想說從新弄一個網站了!換上了Google Apps之後,才發現原來Google Sites並沒有像想像中的那麼容易操作跟自由...連字的顏色都不太能改,就只能將就把底色條深一點,希望Google可以改善這些問題囉!


1-7 of 7