gpt4 book ai didi

ios - 为什么 UIView 截图后 PNG 图像尺寸会变大?

转载 作者:行者123 更新时间:2023-11-29 00:13:31 40 4
gpt4 key购买 nike

我可以使用以下代码从 iPhone 6 的 UIView 截屏:-

这里我打印了 2 条日志。首先给我图像大小 {375, 667} 但在将其转换为 PNG 格式后它给我图像大小 {750, 1334}

我知道它正在将其转换为视网膜显示。每个点在屏幕上由 2 个像素表示,因此保存的图像是分辨率的两倍。

但我需要 PNG 格式的图像大小 {375, 667}

- (UIImage *)imageWithView:(UIView *)view {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSLog(@"Image Size: %@", image); // Image Size: <UIImage: 0x1700880c0>, {375, 667}

NSData* imageData = UIImagePNGRepresentation(image);
UIImage* pngImage = [UIImage imageWithData:imageData];
UIImageWriteToSavedPhotosAlbum(pngImage, nil, nil, nil);

NSLog(@"PNG Image Size: %@", pngImage); // PNG Image Size: <UIImage: 0x174087760>, {750, 1334}

return image;
}


大图:- enter image description here

小图:-

enter image description here

最佳答案

为了避免质量不佳,您可以创建具有屏幕比例的图像

但是当你加载的时候你可以使用这个

CGFloat screenScale = [UIScreen mainScreen].scale;
if (screenScale != img.scale) {
img = [UIImage imageWithCGImage:img.CGImage scale:screenScale orientation:img.imageOrientation];
}

关于ios - 为什么 UIView 截图后 PNG 图像尺寸会变大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45789445/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com