Re: [問題] 使用方框剪裁相機預覽畫面遇到的問題
※ 引述《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
推
08/14 21:47, , 1F
08/14 21:47, 1F
→
08/14 21:48, , 2F
08/14 21:48, 2F
→
08/14 21:49, , 3F
08/14 21:49, 3F
→
08/14 21:50, , 4F
08/14 21:50, 4F
→
08/14 21:51, , 5F
08/14 21:51, 5F
→
08/15 00:04, , 6F
08/15 00:04, 6F
→
08/15 00:04, , 7F
08/15 00:04, 7F
→
08/15 00:16, , 8F
08/15 00:16, 8F
→
08/18 09:57, , 9F
08/18 09:57, 9F
→
08/18 09:58, , 10F
08/18 09:58, 10F
→
08/18 15:56, , 11F
08/18 15:56, 11F
→
08/18 15:56, , 12F
08/18 15:56, 12F
→
08/18 16:07, , 13F
08/18 16:07, 13F
→
08/18 16:07, , 14F
08/18 16:07, 14F
→
08/18 16:08, , 15F
08/18 16:08, 15F
→
08/18 16:09, , 16F
08/18 16:09, 16F
→
08/18 18:25, , 17F
08/18 18:25, 17F
推
08/18 19:54, , 18F
08/18 19:54, 18F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章