新 iPad と旧アプリの相性問題
Facebookに学ぶソフトウェアを重視するカルチャー

Retina display 向けの画像生成に関する一考察

Retina display は iPhone4 から存在しているのだが、neu iPad になって表示される画像の鮮明さがとても重要になり、色々と細かなところで見直しが必要になっている。neu.Notes に関しても、neu iPad 上で走らせると サムネイルの鮮明さが重要になる。

例えば、neu.Notes でユーザーが描いたベクターデータを保持した Canvas ラスタライズして UIImage を返す API。Retina display 登場前には、UIImage には一種類しかなかったので大きさを指定しさえすれば良かったが、これからはそれをデバイス上に表示するのか、JPEG などに変換してメールで送信したりするのか、によってデバイス向けのスケーリングをするかどうかを指定する必要がある。

具体的には、imageFromRect:size:clipPath: というメソッドにdevice:というフラグを追加して、アプリケーション側から指定できるようにしている。

-(UIImage*) imageFromRect:(CGRect)rcSrc device:(BOOL)device size:(CGSize)size clipPath:(UIBezierPath*)clipPath {
    if (device) {
        UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
    } else {
        UIGraphicsBeginImageContext(size);
    }
    CGContextRef context = UIGraphicsGetCurrentContext();
    ... 

neu.Notes の場合だとサムネイルを表示する場合には device=YES で呼び、メールに添付する場合には device=NO で呼ぶ。

Comments

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)