Re: [問題] 如何將視窗內容抓下來?...
謝謝你的回覆...我在這裡貼文前...像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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章