Изменение размера и сохранение изображения на диске без сохранения правильного файла Размеры - PullRequest
0 голосов
/ 07 января 2020

Я работаю над приложением macOS и пытаюсь изменить размер изображения и сохранить его с размерами нового размера, но я столкнулся с проблемой, после сохранения изображения и поиска размеров, я нашел его сохраненным, но не с новыми размерами. например, у меня есть изображение (72 x 72) и в моем коде я изменил его размер до (35 x 35), если я напечатал ширину и высоту из кода, который он показывает (35 x 35), но после сохранения файла, в детали я нахожу размеры обратно (72 x 72)

вот детали для исходного изображения, которое я импортирую в мой код enter image description here

и здесь мой код

      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
      }
}

, а вот скриншот для деталей изображения после сохранения enter image description here

если у кого-то есть идея, как мне сохранить это изображение с правильными размерами, пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...