Как объединить 2 изображения в 1 - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь сделать обрезанное фото и наклеить его на карту текстуры кофейной кружки, где написано «Поместить логотипы здесь», и применить эту карту к 3d-модели.Моя первая попытка ничего не делает.Я не уверен, что буду рисовать обрезанное изображение на моей карте. Изображение

let croppedImage = NSImage.init(cgImage: croppedCGImage, size:NSSize.init(width: cropWidth, height: cropHeight))

//texture map
let mapImage = NSImage.init(named: "coffee_c.jpg")
let mapImageData = mapImage?.tiffRepresentation
let bMap:NSBitmapImageRep = NSBitmapImageRep(data: mapImageData!)!

NSGraphicsContext.init(bitmapImageRep: bMap)
mapImage?.draw(in: CGRect(x: cropX, y: cropY, width: cropWidth, height: cropHeight))
let newImage = NSGraphicsContext.current

enter image description here

1 Ответ

0 голосов
/ 03 декабря 2018

Если вы пытаетесь создать NSImage с помощью рисования, вы можете использовать lockFocus / unlockFocus (набрано в Safari):

let newImage = NSImage(size: .../* probably the size of your original/background */)
newImage.lockFocus()
// draw the first image, draw something on top of that, etc.
newImage.unlockFocus()
// ... you can now draw newImage wherever you want

Это описано в Рисование какаоGuide

Если вам нужно, чтобы ваше изображение было чувствительным к различным разрешениям экрана, рассмотрите NSImage(size: NSSize, flipped: Bool, drawingHandler: @escaping (NSRect) -> Bool), который использует блок кода для ленивого создания изображения в реальном контексте рендеринга.

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