2012-01-14 2 views
2

Iは、その元の寸法の二重に画像のサイズを変更するために、この方法を使用します。iOSイメージのサイズ変更:kCGInterpolationHighよりも優れた補間がありますか?

- (UIImage *)doubleSizeImage:(UIImage *)image { 
    CGSize newSize = CGSizeMake(image.size.width*2, image.size.height*2); 
    UIGraphicsBeginImageContext(newSize); 
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

事実は、補間は依然として不良であることである:私は、例えば、IOSのSafariはdoesnの、良くピクセル化効果を見ることができますページをズームしているときはありません。だから、画像をアップスケールするための良い方法があるのか​​、サードパーティのライブラリ/カテゴリなどを使っているのだろうかと思っていましたか?ありがとう!

+0

実際にkCGInterpolationHighを使用していますか?もしあなたがその行を取り除けば...同じように見えますか?ちょうどダブルチェック。また、SafariとSafariの結果を私たちの情報のために共有しておけば役に立ちます。 –

答えて

2

補間するときは、何らかのアーティファクトを得るでしょう。

ページは、本質的にベクトルのドキュメントであるため、Safariはアウトラインフォントとサイズ変更可能で、ページ上のアーティファクトを取得していないオブジェクト-いますが、ページ上のラスタ画像を見れば、あなたはそれを吹く場合ていることがわかりますイメージが実際にアーティファクトを表示します。 Safariは免除されません。何もありません。

+0

私はそれを知っていて、私はベクトル部分について話していませんでした。同じズームが与えられていると、サファリの画像は簡単に補間されます。もちろん、アーチファクトはありますが、「ぼやけた」方が良いです。私のアプリでは、同じサイズの同じ画像がちょうどピクセル化されています。しかし、ちょっと、私は結局それはちょうど大丈夫だと思う。 –

+0

@AndreaSprega:Safariは、好みの異なる補間レベルを使用している可能性があります。レイヤーのサイズを変更している可能性もあります(補間値や現在のビューのコンテキスト)。 –

関連する問題