我在我的應用程序的UIImage上畫了一條線。我想要這條線是一個來自它正在繪製的背景的「不同的」顏色。如果圖像中有白色區域,如果線條在其上面繪製,則不應該是白色。這容易實現嗎?圖像上的IOS行 - 反轉顏色可能嗎?
現在我使用白色作爲線條。下面的代碼:
[myImage drawInRect:CGRectMake(0,0,200,200)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 1.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(),1,1,1, 1.0);//RGB all 1)
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), pt1.x, pt1.y); // pt1 -start point
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), pt2.x, pt2.y); // pt2 - end point
正如你可以看到我用1,1,1得到從點PT1到PT2的圖像上的白線。當這是在'myImage'的白色區域繪製時,該線條變爲不可見。我想讓它在白色之上以某種方式呈現出來。我怎樣才能做到這一點?
不確定這個論壇上是否已經有答案。但找不到像這樣的東西。
在此先感謝您的幫助
編輯
@rob mayoff的回答對我來說wroked完美。
這裏是我的人的期待在這裏的好處最終代碼:
[myImage drawInRect:CGRectMake(0,0,200,200)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 1.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(),1,1,1, 1.0);//RGB all 1)
CGContextSetShadowWithColor(UIGraphicsGetCurrentContext(), CGSizeMake(2.0f, 2.0f), 1.0f,
[[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:.6] CGColor]);
//CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeExclusion);
//CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeDifference);
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), pt1.x, pt1.y); // pt1 -start point
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), pt2.x, pt2.y); // pt2 - end point
比你了。它工作完美。所有三個(setshadow,BlendModeDifference和BlendModeExclusion)工作正常。我選擇了setShadow,因爲它更適合我的網頁。我已經將最終代碼添加爲我的問題編輯。再次感謝您的幫助 – zolio