gpt4 book ai didi

iphone - UILabel 重新缩放和光栅化时的图像质量问题

转载 作者:行者123 更新时间:2023-12-01 16:47:30 25 4
gpt4 key购买 nike

我在重新调整 UILabel 的内容时遇到了一些问题对象存储为图像时。由于渲染图像必须大于原始 UILabel ,我已经计算出比例 imageScale需要重新缩放原始图像并将其保存到 CGSize多变的。在下文中,我将解释采用(和失败)的方法。

用于渲染图像的代码

以下代码用于在 Canvas 上渲染提取的图像。

[labelImage drawInRect:CGRectMake(xCoordinate/imageScale.width,
yCoordinate/imageScale.height,
newSize.width,
newSize.height)
blendMode:kCGBlendModeNormal alpha:0.8];

其中变量 newSize计算如下:
  • newSize.width = originalWidth/imageScale.width ;
  • newSize.height = originalHeight/imageScale.height

  • 方法 1

    我使用以下代码提取了标签:
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [[label layer] renderInContext: UIGraphicsGetCurrentContext()];
    UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    在哪里 labelUILabel变量和 newSize是重新缩放的图像应具有的大小(有关详细信息,请参见上文)。

    但是,我获得了以下图像,这显然是失败的,因为内容很少且不居中:

    enter image description here

    方法二

    我使用以下代码提取了标签:
    UIGraphicsBeginImageContextWithOptions([label bounds].size, NO, 0.0);
    [[label layer] renderInContext: UIGraphicsGetCurrentContext()];
    UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    但是,由于我使用原始图像大小来提取图像,所以我获得的效果如下:

    enter image description here

    如您所见,气球中的文本分辨率不高,因此无法正确显示。

    问题

    如何纠正这两种方法中的一种以便以高分辨率可视化图像?

    最佳答案

    似乎您只需要为生成的图像设置适当的比例。

    这是功能:

    void UIGraphicsBeginImageContextWithOptions(
    CGSize size,
    BOOL opaque,
    CGFloat scale
    );

    您将比例设置为 0.0 .尝试将其替换为 [UIScreen mainScreen].scale .

    关于iphone - UILabel 重新缩放和光栅化时的图像质量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831615/

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