UIImageを縮小して、ぼやけずに、同時に鮮明にする方法は?
2023-09-03 02:32:24
質問
私は画像を縮小する必要がありますが、シャープな方法で縮小する必要があります。たとえば Photoshop では、画像サイズ縮小オプションとして "Bicubic Smoother" (ぼやけた) と "Bicubic Sharper" がありますが、これはどのようなものですか?
この画像ダウンスケール アルゴリズムは、オープンソースまたはどこかに文書化されていますか、あるいは SDK はこれを行う方法を提供していますか?
どのように解決するのですか?
単に
imageWithCGImage
を使うだけでは十分ではありません。拡大縮小はできますが、拡大縮小にかかわらず、結果はぼやけて最適とは言えません。
エイリアシングを正しく行い、"jaggies" を取り除きたい場合、次のようなものが必要です。 http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/ .
これは、Trevor の解決策に、私の透明な PNG で動作するように 1 つだけ小さな調整を加えたものです。
- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize {
CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
CGImageRef imageRef = image.CGImage;
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
// Set the quality level to use when rescaling
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height);
CGContextConcatCTM(context, flipVertical);
// Draw into the context; this scales the image
CGContextDrawImage(context, newRect, imageRef);
// Get the resized image from the context and a UIImage
CGImageRef newImageRef = CGBitmapContextCreateImage(context);
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
CGImageRelease(newImageRef);
UIGraphicsEndImageContext();
return newImage;
}
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] iOSで画面の幅と高さを取得する方法は?
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み】svgを親コンテナと一緒に拡大縮小するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み] UIImageを200x200pt/pxにリサイズする。