我试着画一条粗线,在我的应用程序中,一条正常的直线看起来很奇怪。我使用的是有趣的字体等,直线只是不起作用。
当我说粗糙的时候,我的意思是我想给它添加一些噪音或纹理。
我试着添加一个图像作为纹理,但我尝试的选项使用统一的瓦片方法,这看起来太几何尺寸的声音。
我需要添加一个散射效果来绘制我的纹理图像,大致以一条线的形状,或某种随机的方法,以添加噪音。
我知道我可以在一个成像应用程序中画一个粗略的线,然后使用它,但我不确定这个阶段的颜色和大小,我宁愿使用动态的东西。
我在这个问题上花费的时间太长了,如果我花了很多时间在谷歌上搜索并且找不到我可以使用的任何东西,那么如果您有一个解决方案,请提供或指出一些示例代码。
谢谢。
这是我找到的最好的解决办法,但太统一了.
#import "DrawTexturedLine.h"
@implementation DrawTexturedLine
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self patternMake2:rect context:context];
}
void pattern2Callback (void *info, CGContextRef context) {
UIImage *image = [UIImage imageNamed:@"particle.png"];
CGImageRef imageRef = [image CGImage];
CGContextDrawImage(context, CGRectMake(0, 0, 50, 25), imageRef);
}
- (void)patternMake2:(CGRect)rect context:(CGContextRef)context
{
static const CGPatternCallbacks callbacks = { 0, &pattern2Callback, NULL };
CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL);
CGContextSetFillColorSpace(context, patternSpace);
CGColorSpaceRelease(patternSpace);
CGSize patternSize = CGSizeMake(25/2.0, 25);
CGPatternRef pattern = CGPatternCreate(NULL, self.bounds,
CGAffineTransformIdentity, patternSize.width, patternSize.height,
kCGPathFillStroke, true, &callbacks);
CGFloat alpha = 1;
CGContextSetFillPattern(context, pattern, &alpha);
CGPatternRelease(pattern);
CGContextFillRect(context, rect);
//CGContextRestoreGState(context);
}
@end发布于 2014-04-20 11:08:20
我只想回到这个问题上,我花了太多的时间在这个问题上,研究了各种各样的有色解决方案。最后,我不得不使用油漆包来完成大部分工作。如果我能做得更好的话,我就能把整件事都做好了。
最后,我用一个黑色的标记画了一些线,把它们扫描成灰色,然后给它着色。
发布于 2014-04-09 13:01:00
没有完全回答你的问题,但你可以画线在一个油漆包,包括那些与你的应用程序,然后使用这样的代码来设置颜色的线条。
https://coffeeshopped.com/2010/09/iphone-how-to-dynamically-color-a-uiimage
如果您要使用雪碧工具包,则更改图像颜色变得容易得多。
[SKAction colorizeWithColor:[self randomColor]
colorBlendFactor:1.0
duration:0]];https://stackoverflow.com/questions/22953475
复制相似问题