菜鸟教程小白 发表于 2022-12-13 17:10:18

iphone - 以 72 dpi 保存 UIImage(Retina 模拟器以 144 dpi 保存)


                                            <p><p>我有一个非常奇怪的问题...
在我的 iPhone 应用程序中,用户可以打开相机胶卷中的图像,在我的示例中
壁纸为 1920 x 1080 像素 (72 dpi)。</p>

<p>现在,想要将图像调整为宽度,例如1024 像素:</p>

<pre><code>+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    ;
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSLog(@&#34;New image has w=%f, h=%f&#34;, newImage.size.width, newImage.size.height);
    return newImage;
}
</code></pre>

<p>通过日志信息,我可以检查,宽度为 1024,高度为 576。一切正常!</p>

<p>但现在,我将图像保存在 Documents 文件夹中:</p>

<pre><code>NSString *jpgPath = ];
;
</code></pre>

<p>现在还有一个很奇怪的效果:<br/>
a) 当我使用 Retina Simulator 时,“/Users/[...]/Library/Application Support/iPhone Simulator/5.1/Applications/[...]/Documents/”中保存的图像大小为 1, 5 MB,分辨率为 2048 x 1152 像素,144(!) dpi。</p>

<p>b) 当我使用普通模拟器时,大小为 441 KB,分辨率为 1024 x 768 px,72 dpi。</p>

<p>如何强制保存 72 dpi 的 UIImage?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>啊啊啊!!!</p>

<p>我明白了……</p>

<pre><code>UIGraphicsBeginImageContextWithOptions(newSize, NO, 1.0);
</code></pre>

<p>“1.0”而不是“0.0”!</p>

<p>第三个参数是应用于位图的比例因子。如果您指定值 0.0,则比例因子设置为设备主屏幕的比例因子。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 以 72 dpi 保存 UIImage(Retina 模拟器以 144 dpi 保存),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12988903/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12988903/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 以 72 dpi 保存 UIImage(Retina 模拟器以 144 dpi 保存)