看板 MacDev 關於我們 聯絡資訊
謝謝你的回覆...我在這裡貼文前...像ADC Reference 我大概都有去找過...我是在找 capture scrren時... 發現....CGDispalyAddressBase()可以抓到整個screen 的frame buffer,只是如果我在window上下draw image, 馬上用..CGDispalyAddressBase()取得address..把資料 讀出來..發現..剛draw的image有部份還沒upadate到 frame buffer中所以抓下來的內容有一部份是舊的.. 因為在draw image後delay幾秒後..再capture就可以正確 但是要delay幾秒沒辨法得到.....所以有點麻煩... 我draw image是用 Qtarz 2D的 CGContextDrawImage... 我draw image有馬上接CGContextFlush.... 我在找時..也有看到CopyBit function...只是...他沒法在 新版的OS上..work..我沒看到有可以替代的...另外..因為是用 Carbon開發..所以有些我看到是.cocoa的code我就放棄用了.. 所以現在...還是..沒辦法正確的抓到視窗的內容下來.... 不知有沒有人能提供意見..謝謝囉... ※ 引述《jclin (Rayman Raving Rabbids)》之銘言: : 抓螢幕的圖 : http://developer.apple.com/documentation/Cocoa/Conceptual/ : CocoaDrawingGuide/AdvancedDrawing/chapter_9_section_4.html# : //apple_ref/doc/uid/TP40003290-CH207-CJBGBCBH : 至於抓視窗上的,之前在 SafariPowerToy 有要寫 capture : 整個 Safari 網頁內容的工具,但是那次硬碟掰了所以就沒有 : 相關的 source 當作參考, : 憑印象來說,要抓視窗上的內容,必須要知道 NSView : 然後建一個 NSBitmapImageRep 給 NSView 當作 graphic content, : 然後呼叫對方的 redraw 去重繪,完畢之後再用 NSImage 存起來。 : 我 google 到的類似 code 就像 http://www.borkware.com/quickies/single?id=40 : 不過這個看起來是抓螢幕上目前的內容, : 以 SafariPowerToy 本來要作的擷取網頁內容來說, : 因為螢幕上的顯示只是網頁的一部份, : 所以程式本來就不是只單單擷取螢幕上面的圖, : 而是把本來要畫到螢幕上的全部內容畫到另外一個畫布上。 : 希望你 google 或是看 ADC Reference 可以找得到更詳細資料。 : ※ 引述《zaimoku (遇見未來)》之銘言: : : 看來好像沒有什麼人有試著將視窗內容抓下來..... : : 那我自己分享一下最近找到一些相關的東西... : : CGDisplayBassAddress()...這function可以拿到 : : 整個screen的內容....不過不太確定拿到的內容.... : : 是否和display的設定或硬體有關.... : : 不過..目前看來好像就這個可行..實在是不知.... : : 有沒有什麼其它方法了... : ※ 編輯: jclin 來自: 220.131.22.165 (07/01 11:32) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.164.70