因此,我们有一个根据用户输入裁剪和调整大小的NSimage。它在视网膜和非视网膜Mac上都能正常工作。
问题是,当我将非视网膜屏幕连接到我的视网膜macbook时,它开始使图像的大小加倍。
仅在第二个非视网膜屏幕上启动应用程序时才会出现此问题。
调试时,我注意到此时图像翻倍:
CGImageSourceRef finalSource = CGImageSourceCreateWithData((__bridge CFDataRef)([newImage TIFFRepresentation]), NULL);
CGImageRef finalRef = CGImageSourceCreateImageAtIndex(finalSource, 0, NULL);
在我的测试中,newImage.size是800x600,但是(int)CGImageGetWidth(finalRef)返回1600.
我也尝试过:
CGImageRef cgImage = [newImage CGImageForProposedRect:&imageRect context:[NSGraphicsContext currentContext] hints:nil];
但仍然有相同的结果。
有什么想法吗?