首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSX UIGraphicsBeginImageContext

OSX UIGraphicsBeginImageContext
EN

Stack Overflow用户
提问于 2015-03-30 22:12:13
回答 2查看 1.7K关注 0票数 1

我有一个iOS应用程序,我现在正在为Mac创建。我有下面的代码,将图像转换为1024的大小,并根据图像的纵横比计算出宽度。这在iOS上有效,但显然不适用于OSX。我不确定如何创建NSImage的PNG表示,或者我应该使用什么来代替UIGraphicsBeginImageContext。有什么建议吗?谢谢。

代码语言:javascript
复制
        var image = myImageView.image

        let imageData = UIImagePNGRepresentation(image)
        let imageWidth = image?.size.width
        let calculationNumber:CGFloat = imageWidth! / 1024.0

        let imageHeight = image?.size.height
        let newImageHeight = imageHeight! / calculationNumber

        UIGraphicsBeginImageContext(CGSizeMake(1024.0, newImageHeight))
        image?.drawInRect(CGRectMake(0, 0, 1024.0, newImageHeight))
        var resizedImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        let imageData = UIImagePNGRepresentation(resizedImage)

        let theImageData:NSData = UIImagePNGRepresentation(resizedImage)
        imageFile = PFFile(data: theImageData)
EN

回答 2

Stack Overflow用户

发布于 2015-08-03 19:32:44

您可以使用:

代码语言:javascript
复制
let image = NSImage(size: newSize)
image.lockFocus()
//draw your stuff here
image.unlockFocus()
if let data = image?.TIFFRepresentation {
    let imageRep = NSBitmapImageRep(data: data)
    let imageData = imageRep?.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: [:])
    //do something with your PNG data here
}
票数 2
EN

Stack Overflow用户

发布于 2019-03-13 19:51:15

我的观点是..。使用部分重叠的图像绘制图像的快速扩展:

代码语言:javascript
复制
extension NSImage {

    func mergeWith(anotherImage: NSImage) -> NSImage {

        self.lockFocus()
        //draw your stuff here

        self.draw(in: CGRect(origin: .zero, size: size))
        let frame2 = CGRect(x: 4, y: 4, width: size.width/3, height: size.height/3)
        anotherImage.draw(in: frame2)

        self.unlockFocus()
        return self
    }

}

最终效果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29348487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档