我目前正在为图像添加一个矩形,以防它不是平方“填充”剩余空间,使其成为方形。这个想法是,这是一个便宜的方法(就“迫使”图像被平方所需的时间而言)。Swift - 将颜色添加到CGrect
正如您在附件中看到的那样,我生成的方块没有颜色,这可能会让用户感到困惑。这就是为什么我想为我生成的CGRect添加颜色的原因。问题是我没有找到任何方法来做到这一点。任何建议如何给这个广场生成颜色,将非常感激。
当前的代码我不得不这样做是:
func forceSquaredImage(image: UIImage) -> UIImage{
let maxDimension = max(image.size.height, image.size.width)
var newImage : UIImage = image
if(image.size.height > image.size.width){
UIGraphicsBeginImageContextWithOptions(CGSize(width: maxDimension, height: maxDimension), false, 0.0);
image.drawInRect(CGRectMake(image.size.height/2-image.size.width/2, 0, image.size.width, image.size.height))
newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}else if(image.size.height < image.size.width){
UIGraphicsBeginImageContextWithOptions(CGSize(width: maxDimension, height: maxDimension), false, 0.0);
image.drawInRect(CGRectMake(0, image.size.width/2-image.size.height/2, image.size.width, image.size.height))
newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
return newImage
}
期望的结果会是这样的(红色就是在这样的一个例子情况):
这就是我所说的。我尽量避免提供代码,因为如果他自己编写代码,OP更有可能学习。 –
请注意,这是一个iOS问题,所以您应该使用UIColor,而不是NSColor。 (我编辑了你的答案) –
我试着用你的代码,不得不对NSBezierPath进行一些修改,以: UIBezierPath(rect:CGRect(x:0,y:0,width:maxDimension,height:maxDimension)) 但是,我得到以下警告:初始化程序的结果未使用 和我得到了与以前相同的结果: – Waclock