Я хочу создать изображение фиксированного размера, например, 612 на 612. Я использую средство выбора изображений для выбора фотографий с моего iphone.Поэтому, чтобы гарантировать, что все фотографии будут соответствовать размеру 612 на 612 без искажений, я использую следующий метод для изменения масштаба фотографии, чтобы они соответствовали размеру 612 на 612. Однако в результате, пробелыможет быть создан в конечном изображении.(см. пример ниже)
Я использую следующий код для масштабирования моего изображения (с фиксированным размером 612 на 612)
//Scale the image to fit to imageview
UIImage *image = [self scaleImage:img toRectSize:CGRectMake(0, 0, 612, 612)];
//Method to scale image
- (UIImage *)scaleImage:(UIImage *)img toRectSize:(CGRect)screenRect
{
UIGraphicsBeginImageContext(screenRect.size);
float hfactor = img.size.width / screenRect.size.width;
float vfactor = img.size.height / screenRect.size.height;
float factor = MAX(hfactor, vfactor);
float newWidth = img.size.width / factor;
float newHeight = img.size.height / factor;
float leftOffset = (screenRect.size.width - newWidth) / 2;
float topOffset = (screenRect.size.height - newHeight) / 2;
CGRect newRect = CGRectMake(leftOffset, topOffset, newWidth, newHeight);
[img drawInRect:newRect blendMode:kCGBlendModePlusDarker alpha:1];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Как уже упоминалось, изображение иногда не является полным квадратом, Я получаю результат, подобный тому, что вы видите ниже:
![enter image description here](https://i.stack.imgur.com/xR0Bc.png)
Как я могу почувствовать белые пробелы на изображении черным цветом?