Я работаю над приложением macOS и пытаюсь изменить размер изображения и сохранить его с размерами нового размера, но я столкнулся с проблемой, после сохранения изображения и поиска размеров, я нашел его сохраненным, но не с новыми размерами. например, у меня есть изображение (72 x 72) и в моем коде я изменил его размер до (35 x 35), если я напечатал ширину и высоту из кода, который он показывает (35 x 35), но после сохранения файла, в детали я нахожу размеры обратно (72 x 72)
вот детали для исходного изображения, которое я импортирую в мой код
и здесь мой код
let targetSize = NSSize(width: 35, height: 35)
let newImageResized = newImages.resized1(to: targetSize)
print(newImageResized?.width)
img2.image = newImageResized
let fileName = "newImage"
do {
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent("\(fileName).png")
if (newImages.pngData) != nil
{
let _ = try newImages.pngWrite(to: fileURL)
}
} catch { }
и вот выход для NSImage
import Cocoa
extension NSImage {
func resized1(to newSize: NSSize) -> NSImage? {
if let bitmapRep = NSBitmapImageRep(
bitmapDataPlanes: nil, pixelsWide: Int(newSize.width), pixelsHigh: Int(newSize.height),
bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, isPlanar: false,
colorSpaceName: .calibratedRGB, bytesPerRow: 0, bitsPerPixel: 0
) {
bitmapRep.size = newSize
NSGraphicsContext.saveGraphicsState()
NSGraphicsContext.current = NSGraphicsContext(bitmapImageRep: bitmapRep)
draw(in: NSRect(x: 0, y: 0, width: newSize.width, height: newSize.height), from: .zero, operation: .copy, fraction: 1.0)
NSGraphicsContext.restoreGraphicsState()
let resizedImage = NSImage(size: newSize)
resizedImage.addRepresentation(bitmapRep)
return resizedImage
}
return nil
}
}
, а вот скриншот для деталей изображения после сохранения
если у кого-то есть идея, как мне сохранить это изображение с правильными размерами, пожалуйста, помогите