0

こんにちは: アプリケーションに写真アップローダーがあり、プレイヤーが自分の写真をアップロードしてアプリケーションで使用できるようにします。X x X ピクセルの画像 (非 Retina ディスプレイ用) と 2X x 2X ピクセルの画像 (Retina ディスプレイ用) の 2 つの画像を作成するために、アップロードされた各画像をトリミングしてサイズを変更します。

次に、両方の画像をローカル プレーヤーのプライベート ドキュメント ディレクトリに[photoDataNonRetina writeToFile:pathNonRetina atomically:YES]保存し[photoDataRetina writeToFile:pathRetina atomically:YES]ます。photo.pngphoto@2x.png

デバイスに Retina ディスプレイがあるかどうかに基づいて適切な画像が取得されるように、ローカルのプライベート ドキュメント ディレクトリから画像を取得するにはどうすればよいですか? 今、私は次のようなことをしていると思います:

NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"photo.png"];
return [UIImage imageWithContentsOfFile:path];

それ以外は、非網膜画像をロードするだけのように見えますか?

4

3 に答える 3

0

これを試して:

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]            &&
([UIScreen mainScreen].scale == 2.0)) {
  // Retina display
} else {
  // non-Retina display
}
于 2012-12-20T19:17:36.333 に答える
0

もしかしてこれ?

if ([[UIScreen mainScreen].scale > 1) {
  NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"photo@2x.png"];
  UIImage * image = [UIImage imageWithContentsOfFile:path];
  UIImage * retinaImage = [UIImage imageWithCGImage:[image CGImage] scale:2 orientation:[image imageOrientation]];
  return retinaImage;
} else {
  NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"photo.png"];
  return [UIImage imageWithContentsOfFile:path];
}
于 2012-12-20T21:21:36.047 に答える