У меня есть изображение, которое я хотел бы показать в разных размерах с помощью CCSprite. Я знаю, что обычно CCSprite добавляет ширину ширины изображения witf только для изображения, но мне было интересно, есть ли какой-либо метод, поэтому мне не нужно вручную масштабировать изображение сначала, как и далее, а затем давать изображение в ccpsrite?Установить рамку CCSprite?
-(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize image:(UIImage*)sourceImage
{
UIImage *newImage = sourceImage;
CGSize imageSize = sourceImage.size;
/// Source image is of desired size or desired size 0x0, no change is done
if (!CGSizeEqualToSize(targetSize, CGSizeZero) && !CGSizeEqualToSize(imageSize, targetSize))
{
CGFloat aspectRatio = imageSize.width/imageSize.height;
CGFloat newAspectRatio = targetSize.width/targetSize.height;
CGSize tempSize = targetSize;
if (newAspectRatio < aspectRatio)
{
tempSize.width = targetSize.width * aspectRatio/newAspectRatio;
}
else
{
tempSize.height = targetSize.height * newAspectRatio/aspectRatio;
}
UIGraphicsBeginImageContext(targetSize);
[sourceImage drawInRect:CGRectMake((targetSize.width - tempSize.width)/2.0, (targetSize.height - tempSize.height)/2.0, tempSize.width, tempSize.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return newImage;
}