我一直试图将UIImage掩盖成一个圆圈.我现在正在使用其他答案中流行的代码,但是虽然我得到一个圆形,但它的边缘非常锯齿状而且不平滑.有人可以帮忙吗?我能得到一个完美,流畅的圆圈吗?
我用来创建掩码的代码是:
(UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef imageNoAlpha = image.CGImage;
CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB();
CGFloat width = CGImageGetWidth(imageNoAlpha);
CGFloat height = CGImageGetWidth(imageNoAlpha);
CGContextRef ctxWithAlpha = CGBitmapContextCreate(nil, width, height, 8, 4*width, cs, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(ctxWithAlpha, CGRectMake(0, 0, width, height), imageNoAlpha);
CGImageRef imageWithAlpha = CGBitmapContextCreateImage(ctxWithAlpha);
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
UIImage* retImageFixed = [retImage transparentBorderImage:1];
CGImageRelease(mask);
CGImageRelease(masked);
CGImageRelease(imageWithAlpha);
CGContextRelease(ctxWithAlpha);
CGColorSpaceRelease(cs);
return retImageFixed; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用FTP服务器.我已经搜索了所有内容,对于像我这样的初学者来说,一切都很难理解.SimpleFTPSample很难理解,因为它一次很多.视图,按钮,标签,textflelds,上传,下载,请求,列表,获取.与BlackRaccoon和其他一切相同.
如何简单和程序地将"test.txt"上传到FTP服务器:Xcode(iPhone应用程序)中的"192.168.1.111"没有视图或按钮.只是可以在ViewDidLoad中的代码.
也许这样的事情?:
NSURL* url = [NSURL URLWithString:@"ftp://username:pw@189.92.32.34"];
CFReadStreamRef stream = CFReadStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) url);
stream.delegate= self;
[stream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[stream open];
Run Code Online (Sandbox Code Playgroud)
但是哪个档案?展开它,或编写新代码.我不知道,这对我来说是新的.
谢谢乔纳森
我不想"知道"如何将字符串放在另一个字符串中的某个位置.我已经知道了,因为我想出了另一种方法.但我不知道真正的方式,它甚至存在吗?
我也问这个问题,以便将来有关如何将这个字符串放在另一个字符串中的位置的"错误"方式(如果它不能以真正的方式完成)
我的意思是将(子)字符串放在字符串的位置是例如放
这个字符串:@"Hello"的位置:5 inString:@"123456789"
我希望结果是:@"12345Hello6789"这可以通过真正的方式完成吗?像这样的假代码:
[str stringByPuttingString:@"s" atLocation:5];//this code does not exist
Run Code Online (Sandbox Code Playgroud)
我想出了其他方法来完成这项工作,我们可以将其用于更短的代码吗?
-(NSString *)putString:(NSString *)str atLocation:(int)location ofString:(NSString *)mainString {
NSRange range = NSMakeRange(location, 0);
return [mainString stringByReplacingCharactersInRange:range withString:str];
}
Run Code Online (Sandbox Code Playgroud)
和
-(NSString *)putString:(NSString *)str atLocation:(int)location ofString:(NSString *)mainString {
NSString *first = [mainString substringToIndex:location];
NSString *last = [mainString substringFromIndex:location];
return [NSString stringWithFormat:@"%@%@%@", first, str, last];
}
Run Code Online (Sandbox Code Playgroud)
第一个感觉最好,任何其他想法或真实想法?
乔纳森,未来这个"问题"的案例.