MacDev 板


LINE

※ 引述《klern (灰)》之銘言: : 首先 先大概介紹我要做的程式 : 用一個NSImageView連結上相機的預覽視窗, 藉此可以看到相機的預覽畫面 這邊稍微有點看不太清楚,所謂相機上的預覽視窗,有可能是代表 把外接相機當做 webcam 錄進 video stream,也可能是把已經拍好的 照片讀進來,在 Cocoa 所提供的物件中,前者可以用 QTCaptureView, 後者可以用 IKCameraView,一個是 QuickTime 的東西,一個是 ImageKit 的東西,NSImageView 頂多就是載入 NSImage 而已…所以,這邊應 該是指,反正就是透過某種方法,讀到 NSImage 中,接著放到 NSImageView 裡頭。 : 另外 在drawRect畫上一個能夠拖曳以及調整尺寸的方格 來圈取想剪裁的部分 : 但是我遇到了問題... : 當我尚未開啟畫面預覽時(藉由按鈕觸發), 我的方格拖曳以及調整尺寸功能可以正常運作 : 而當我開啟畫面預覽時 當我拖曳或調整尺寸時 方格的位置都會跑掉 : 我拖曳及調整尺寸的功能是使用mousedown mouseup mousedrag這幾個method 聽起來應該是 drawRect: 的時候,在做影像上面重疊一個外框的地方 沒有處理好,這邊講得不太清楚,不知道是用 NSBezierPath 還是用 CoreGraphics 在畫。我可以想到的大概有兩點: 1. 在做了 mouseUp mouseDown 之後,是不是有確實要求你的 ImageView 重繪,是不是都有呼叫 setNeedsDisplay?會不會外框位置跑掉, 原因是並沒有 redraw 呢? 2. 如果不打算管 10.4 之前的版本,你要的 UI 可能會比較適合用 CoreAnimation 做,因為一直呼叫某個 NSView 重繪,老實說效能 不會很好。 如果是用 CoreAnimation,上方的裁切框,只要再加入一個 CALayer 就好,CALayer 的 interface 基本上跟 NSView 差不多,但是直接 就可以設定外框顏色與粗細,所以,如果我們把原本的 View 的 layer 的 content 設成那張圖片,裁切框設定成另外一個有外框的 layer, 那麼,要調整裁切框範圍,其實就只是設定這個 layer 的 frame 而已,比在 drawRect: 裡頭自己寫怎麼繪製內容好懂許多。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.194.204
1F:推 klern:謝謝解答! 第一個部分是前者 在drawRect我使用NSBezierPath 08/14 21:47
2F:→ klern:在使用mouse method時 有呼叫setNeedsDisplay 但不知為什麼 08/14 21:48
3F:→ klern:拖曳後 放開滑鼠左鍵 方框會繼續移動 有點延遲(?)的狀況 08/14 21:49
4F:→ klern:因為我這是要額外加在別的程式上的功能 所以要整個改成 08/14 21:50
5F:→ klern:CoreAnimation做 有點不太方便 再度謝謝你!! 08/14 21:51
6F:→ zonble:因為整個 view redraw 還頂慢的,建議打幾個 NSLog 上去 08/15 00:04
7F:→ zonble:看看是不是mouseup之後,還在畫 mousedrag 的時候的東西 08/15 00:04
8F:→ klern:謝謝 我在嘗試看看! 08/15 00:16
9F:→ klern:目前嘗試了CALayer 利用Layer的frame做拖曳 但畫面會出現 08/18 09:57
10F:→ klern:拖曳過的殘影 請問這有辦法解決嗎 謝謝 08/18 09:58
11F:→ zonble:你是直接把 layer 疊在 image view 上嗎? 08/18 15:56
12F:→ zonble:通常這樣會有問題,建議把圖片也放在另一個 CALayer 裡 08/18 15:56
13F:→ klern:我列出我部分程式碼 CALayer *rootLayer = [CALayer layer]; 08/18 16:07
14F:→ klern:rootLayer.contents = [self layer].contents; 08/18 16:07
15F:→ klern:[[self layer] addSublayer:rootLayer]; 08/18 16:08
16F:→ klern:rootLayer在addSubLayer:裁切Layer 08/18 16:09
17F:→ zonble:http://drp.ly/1yHC9V 玩玩看 08/18 18:25
18F:推 klern:謝謝:) 08/18 19:54







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP