2012年6月23日 星期六

另一種 system();

就是用 CreateProcess 取代.
不過一般 CreateProcess 是開一個 task 以多工的方式跑另一個執行檔, 和 system() 不一樣, system() 會等待那個執行檔執行結束.

CreateProcess 也可以在該執行檔結束時發一個 event 通知, 像這樣:


    PROCESS_INFORMATION tPI =   { 0 };
    CreateProcess(TEXT("exe.exe"), 0, 0, 0, 0, 0, 0, 0, 0, &tPI);
    WaitForSingleObject(tPI.hProcess, INFINITE);

exe.exe 就是要執行的, 這樣就會無限時等待 exe.exe 執行完畢.

會寫這篇是因為 1.太久沒更新 2.CE 上沒有 system() 可用.

2012年6月17日 星期日

論鏡頭轉接..

從有 GF2 開始, 就開始嘗試一些老鏡的轉接實驗, 以目前手邊有的鏡頭跟轉接環就有 M42, nikon-F (G鏡), canon EOS, canon FL, leica L39 等, 但是這裡面個人覺的比較好用的, 是 nikon F-mount. 用幾張圖說明一下...

這是 AF-D 接環, 鏡頭是 50mm F1.4D, 這種本身是沒有鏡頭馬達, 需要機身供應動力來完成自動對焦的鏡頭, 下圖中紅圈的地方就是它的光圈撥桿. 而就在下所知, nikon 從 Ai 鏡開始就有這個光圈撥桿可用, 後面 AiS 是差在能不能測光等等, ok 那不是重點, 重點是有光圈撥桿.

這是 AF-S 接環, 鏡頭是 16-35 F4G, 這是有內建對焦馬達的鏡頭, 而 nikon 的新鏡頭絕大多數都改採用這種接環. ok, 重點也在那個光圈撥桿 (圖中紅圈), 可以看的到, 即使是很新出的鏡頭, 也有保留這麼一個光圈撥桿可用.

這就是轉 M4/3 的轉接環.

有做一個撥桿去調光圈. 只要是 nikon F-mount 的鏡頭, 大多數都可以靠轉接環上這個撥桿來手動調光圈, 這是這篇的重點....


這是接上去後的樣子. 不過老實講... 16-35 F4G 這隻鏡頭的有效光圈原本就非常小 (4mm直徑) 了, 對於 GF2 來講, 幾乎沒有調光圈縮光圈的機會...

這樣一來, 鏡頭除了 AF 跟 VR 沒有作用以外, 其他像變焦/對焦/調光圈都可以自由操作, 而且是對 nikon 家新出的鏡頭也仍然可以這樣做. 其它的 mount 並不是不可以調光圈, 而是大多數廠商的接頭, 大多是過去還沒有電子接點時的鏡頭才可以調光圈...

canon FL/FD, 轉接環可以調開放光圈與光圈環設定光圈, 算是最好用的一種, 不過 FD/FL 接頭的鏡頭早已不再生產. 取而代之的是 EOS.

canon EOS 有廠商 (如 kipon) 做出有光圈環的轉接環, 但老實講, 一點都不好用, 有很多鏡頭入光量大到要把光圈縮到比指示範圍還要更小的光圈, 成像才收斂的起來... 老實講非常可惜, 因為 canon EOS 是一隻非常大的鏡頭族群, 有很多焦段/光圈的鏡頭產品比 nikon 齊全的多...

M42 跟 L39... 目前用過的都是可以調光圈的...

於是這就是為什麼, 我後來跳來用 nikon 系統的原因, nikon 家的東西跟 canon 跟 sony 比起來都各有長短, 但唯獨鏡頭接環的支援這一點, 我覺的比起 canon/sony 要好用一點..

但是... 以機身, 接各家的鏡頭的便利性來說, 我會覺的 sony NEX 的最有利 (鏡後距最短, 18mm 而已, 軟體有支援峰值對焦方便支援老鏡), 再來是 canon. canon 因為接環最大, 只要鏡後距允許, 幾乎都可以無痛轉接.