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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP