У меня есть программа, которая использовала sktilemap и шумовую карту для генерации карт. В конце у меня есть код для экспорта сцены как изображения, но изображение обрезается, и в сохраненном изображении я вижу меньше содержимого, чем на экране (см. Снимок экрана 1 и изображение 2 )
Код:
let w = nCol*16
let h = nLig*16
let texture = self.view?.texture(from: scene!, crop: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: w, height: h)))
let image = texture?.cgImage()
let path = URL(fileURLWithPath: "/Users/MyName/testExport.png")
writeCGImage(image!, to: path)
@discardableResult func writeCGImage(_ image: CGImage, to destinationURL: URL) -> Bool {
guard let destination = CGImageDestinationCreateWithURL(destinationURL as CFURL, kUTTypePNG, 1, nil) else { return false }
CGImageDestinationAddImage(destination, image, nil)
return CGImageDestinationFinalize(destination)
}
edit: если я использую self.view? .Texture (from: scene!) у меня тот же результат Если я увеличу размер урожая, у меня будет пи c 3 в высоком разрешении (10240 × 5760 во время моего теста), но я не вижу больше вещей, я вижу фон ![Image with higher crop dimensions](https://i.stack.imgur.com/z2Oe3.jpg)
edit2: с вашими ответами я смог найти решение: для экспорта мне пришлось изменить размер сцены следующим образом:
scene?.size.height = CGFloat(nLig*tileSize)
scene?.size.width = CGFloat(nCol*tileSize)
В результате изображение слишком тяжелое для imgur: вы можете видеть его https://twitter.com/GenetixVideos/status/1233686731200909312/photo/2