Desire for wealth

PV : 10223271 / Owner : Nihondo

だめちゅんにっき

前の記事:« ココア図書館 #01 - 縁取り付きの文字列を描画する

次の記事:1年越しの夢かなう〜ステレオハック開始 »

3月25日(木)

ココア図書館 #02 - 縁取り付きの文字列を描画する その2

ココア図書館CV:斎藤千和で人里離れた山の奥にある小さなサイト。そこにはゆかり姫ラブな管理人と、女医ハック狂いの管理人と、Cocoa の勉強を始めた管理人がいるのです(←どうやらこの口上が毎回言いたいらしい)。

ちゅうか、びっくりしたー前回のココア図書館の記事に mkino@HAPPY Macintosh Developing TIME!さんがうちの掲示板で反応してくれてました。うれすぃ…。

mkinoさんといえば、Cocoa の世界では大御所じゃないですか。そんな人がこんな人里離れた山の奥にある小さな図書館(やっぱりこれが言いたいらしい)に足を運んでくれるとは!すげいでよ!あひーっ!

はい、それで、本題なんですけど、

NSAttributedStringに、NSStrokeWidthAttributeNameとNSStrokeColorAttributeName を設定してdrawAtPoint:するのも、簡単でいいと思うんですが、どうでしょう?

NSAttributedStringだと、storkeWidthを使うと中身が塗りつぶされないですよね。だから、始めに通常の文字を描いて、重ね書きをするといいと思います。

とのことでした。

そうなんです。楽な方がいいに決まってます。

#02 - 縁取り付きの文字列を描画する その2
    /* NSStrokeWidthAttributeName は縁取りの幅を指定 */
    [fontBorderAttr setObject:[[NSNumber alloc]initWithFloat:10.0]
                       forKey:NSStrokeWidthAttributeName];
    /* NSStrokeColorAttributeName は縁取りの色を指定 */
    [fontBorderAttr setObject:[NSColor whiteColor] forKey: NSStrokeColorAttributeName];
    [writeStr drawAtPoint:NSMakePoint(x,y) withAttributes:fontBorderAttr];
    [writeStr drawAtPoint:NSMakePoint(x,y) withAttributes:fontAttribute];

としてあげますと、ちゃんと縁取りで書いてくれますよ。簡単だし、こっちを多用するのがいいと思います。実はこの方法も HackENT の初期段階では使っていました。

だけどカラオケという意味だとこれで書いた文字列がいまいちだったので、前回のまわりくどい方法にたどり着いたんですよ。前回(右側)のと比較してみるとよくわかります。

NSStrokeWidthAttributeName NSGlyph

もう『レモネード』最高なわけですが、縦に並べてみるとこんな感じ。

NSStrokeWidthAttributeName
NSGlyph

普通の縁取り効果がほしかったら前者のほうがかっこいいのですが、ことカラオケとなるとやはりボーダーの存在意義が変わってきますよね。

まず角を丸くしたいときは、NSStrokeWidthAttributeName じゃできないんじゃないかと思って早々にあきらめちゃって、最終的に NSGlyph にたどり着いたのですよ。

ちなみに、REALbasic 時代はどうやっていたかといいますと、いわゆる東西南北法(←いま命名)を使ってました。

要は、文字列を書く前に、縁取りしたい色で文字列の東、西、南、北、北東、北西、南東、南西にずらして文字を書いておいて、最後にその上から中身の色で文字列を書いてました。だから1行書くのに都合9回も描画処理するんです。

そうやって描いた文字列はこんな感じです。Cocoa 化した直後、HackENT の初期もこの方法で書いていましたよ。

REALbasic 時代

ね、これも案外わるくないでしょ。ただ、大量に処理すると時間がかかっちゃうのですよね。しっかし、能登麻美子はいいよねぇ。

ただ、カラオケを気持ちよく歌うためには、文字の見やすさがどうしても必要で、背景の動画やスクリーンセイバーに負けない、しっかりした縁取りが重要ってことで、やっぱ時間がかかっても、苦労してでも、きれいな縁取りを描画していきたい、と思うのでした。

はい、それでは、脳内能登麻美子とバーンナップしてくるので、この辺で失礼します。また次回。

3/25 01:16
この記事への トラックバック(0)/ひとこと(0)▼

What are you doing? (twitter)

最近の記事

C75 持ち込みカラオケシステム「女医ハック」頒布〜サブタイムライン再生に対応 - 12/28 @449

PlayStaion Home のクローズドベータテストに参加したら、公共の場でわいせつ行為してた - 11/22 @656

10年の時を越えて伝説の妹が立体化「With You 〜みつめていたい〜 伊藤乃絵美」 - 11/22 @588

箱が巨大すぎる「ハイパースティック PRO オトメディウスG ver.」で繊細なパイタッチをだな…こう…。 - 11/20 @466

Wii 版 FIFA 09 ALL-PLAY はもっとウイイレプレーメーカーをパクればよかったのに! - 11/10 @602

FIFA 09 クラブマッチにみるお国柄〜中国カンフーサッカーの脅威 - 11/ 5 @238

なぜかアマゾンでアダルト商品になってる「いいなり!あいぶれーしょん 雫石」フィギュア - 11/ 2 @533

今日発売の PHS300 に今日発売のニンテンドー DSi をつないでみたよ - 11/ 1 @142

実はサーバ機能が隠されていた「ワイヤレスゲート ホームアンテナ for イー・モバイル」 - 10/22 @629

イモバ回線で AP を作る「ワイヤレスゲート ホームアンテナ for イー・モバイル」が突然発売 - 10/21 @514

さらに以前の記事へ