2010-07-25 20 views
1

我有一个矩形CPImage设置像这样夹一CPImage成圆形或其它形状

var img = [[CPImage alloc] initWithContentsOfFile:"Resources/img.jpg""]; 

我想显示在我的CPView子转了一圈与图像的部分剪切(什么位于月蚀之外)保持透明。我试过这个:

- (void)drawRect:(CGRect)aRect 
{  
    var path = [CPBezierPath bezierPathWithOvalInRect:aRect]; 

    [[CPColor colorWithPatternImage:img] set]; 
    [path fill]; 
} 

但我只是得到一个黑色的圆圈。

回答

0

这里的问题是,你不能使用图像来填充卡布奇诺(尚)。所以它会像你发现的那样变成黑色,即使你使用的命令在技术上是正确的。我并不知道有解决方法,但是您可以尝试发布到Cappuccino user list,并查看是否有人正在使用此功能。

+0

[我在列表中询问](http://groups.google.com/group/objectivej/browse_thread/thread/d5664f60387c6d03),建议使用[Raphaeljs](http://raphaeljs.com) [补丁](http://groups.google.com.au/group/raphaeljs/browse_thread/thread/39d352fe5794988c/94ca260aa38095c1?lnk=gst&q=clip+to+path#94ca260aa38095c1)。不知道如果我这样做,如果可能的话,我想坚持卡布奇诺/可可风格的代码。 – 2010-07-27 14:18:53

+0

这是可以理解的。我自己曾经遇到过这样的事情。我期待卡布奇诺的绘图操作能够实现Cocoa的全部功能 - 与普通的HTML/CSS相比,这将是一种乐趣。 – 2010-07-27 21:25:03

+0

我提交了一个bug http://github.com/280north/cappuccino/issues/issue/811,并有一个粗略的修复(Canvas only ATM),它适用于我在github fork中:http://github.com/RegisFrey /卡布奇诺。 – 2010-08-06 03:09:09