У меня есть класс, который принимает UIImage
, инициализирует с ним CIImage
вот так:
workingImage = CIImage.init(image: baseImage!)
Затем изображение используется для вырезания из него 9 соседних квадратов по шаблону 3х3 - в цикле:
for x in 0..<3
{
for y in 0..<3
{
croppingRect = CGRect(x: CGFloat(Double(x) * sideLength + startPointX),
y: CGFloat(Double(y) * sideLength + startPointY),
width: CGFloat(sideLength),
height: CGFloat(sideLength))
let tmpImg = (workingImage?.cropping(to: croppingRect))!
}
}
Эти tmpImgs вставляются в таблицу и позже используются, но это не главное.
Этот код работает на симуляторах IOS 9
и IOS 10
, но не на реальном устройстве iOS 10. Произведенные изображения либо все пусты, либо одно из них похоже на половину того, что должно быть, а остальные, опять же, пусты.
Разве это не то, как это должно быть сделано в IOS 10
?
sideLength
,startPointX
иstartPointY
. Но вы не дали ни малейшего представления о том, как вы получаете эти важные числа. (Я также должен упомянуть, что такие явления, как работа на симуляторе, но не на устройстве, часто вызваны проблемами с потоками.) - person matt   schedule 24.11.2016workingImage
. Обрезанное изображение назначаетсяtmpImg
, но сразу же освобождается, поскольку переменная никогда не используется. Итак,workingImage
не меняется. Это настоящий код? - person Codo   schedule 25.11.2016tmpImg
добавляется в массив изображений в цикле, я пропустил это, потому что не думаю, что это имеет значение в данном случае. Как я уже сказал, этот метод работает корректно наIOS9
устройствах, что еще больше меня смущает. - person VID44R   schedule 26.11.2016