2010/02/26

PhotoShopCS5の機能がすごい

このエントリーをはてなブックマークに追加


この動画で見る限り、合成がわりと自然に見えるのと、それがリアルタイムで結果が表示されるのがすごい。
めちゃくちゃすげえと思ってしまうわけだけど、冷静になってみると、こんな機能怖くて使わない気がします。

でも新機能はわりと使用しない


バージョンアップのたびに思うわけだけど、新しい機能ってあんまり使用しないものです。
①内部で行われる動作がいまいちわからない。
効果が予測できる機能じゃないと、意図しない結果を生むことがあるので怖くて使用できない。あんまりソフト側にいろいろやってもらうのは避けるべき。
「マグネットツール」とか使うくらいなら、パス切りの技術を少しでも伸ばしたほうが、早く綺麗にできる。

②こんな大雑把な合成を作成する機会がない。
構図もへったくれもない合成なんてする機会があるのだろうかという印象。ここまでいじくるなら、別の画像を探したほうがいいと思う。見てる分には楽しそうですけどね。
瓦礫をきれいにするとかは便利かもしれないけれど、スタンプツールを使えばいいような気はします。

③下位互換を気にする。
新機能は新バージョンを投入したマシンでしか編集できなくなり、仕事的にはパフォーマンスに欠ける。
そもそも、何が新機能かをすべて把握することが困難なので、保守的に無難な機能だけを使ってしまう。
だけど、こんなこと言い出すのは消極的ですね。


CS5ももうすぐ発売かなー。年々バージョンアップが早く思えてきますね。
もう5年くらいそのままでいてくれたほうがありがたいのに、と仕事で使ってる人なら共感してくれるはず。

あとこんなんも見つけた


ざっくりした構図だけあれば、あとは勝手に合成画像を生成してくれる技術らしいです。


なんだかいかにも「うそだー」というような説明になってしまったけれど、要するに使えるようにするまでが大変そうですね。
gizmodo - This Is a Photoshop and It Blew My Mind

2010/02/18

[C#]文字のアウトラインを描く

このエントリーをはてなブックマークに追加

文字のパス情報を取得する


GraphicsPathクラスにあるAddStringメソッドを使います。
AddStringメソッドを使うと、指定の文字のパスを、GraphicsPathに追加することができます。

// using System.Drawing;
string str = "Hello World!";

Graphics g = this.CreateGraphics();
g.SmoothingMode = SmoothingMode.HighQuality;

PointF point = new PointF(5.0f, 15.0f); // 文字を描画する原点(左上)
StringFormat format = new StringFormat();

GraphicsPath path = new GraphicsPath();
path.AddString(str, new FontFamily("Arial Black"), (int)FontStyle.Regular, 36.0f, point, format);

g.DrawPath(Pens.OrangeRed, path);

g.Dispose();


上記コードの実行結果です。「Hello world!」の文字列のアウトラインを描いたもの。

GraphicsPathクラスには、Graphicsクラスの描画メソッドと類似のメソッドがたくさん用意されています。
矩形を追加したり、円をパス化したり、大体のメソッドは、引数も同じで使用するのに違和感はないのです。
なのにAddStringだけ、GraphicsのDrawStringとは引数の仕様が異なっているようです。
  • 文字のサイズ指定の方法が異なっている。
  • 書体の指定がフォントファミリになっている。
  • FontStyleの指定をintegerにしないといけない。

厄介なのは文字サイズ。文字サイズというより文字の高さを指定してあげるという方式らしいので、フォントのSizeプロパティをGraphicsPath.AddStringに指定すると、Graphics.DrawStringで単に文字を描画するのよりも文字が小さく出力されます。

→補足エントリを書きました。2016/04/05
[C#]Graphics.DrawStringとGraphicsPath.AddStringのサイズを合わせる
http://devlabo.blogspot.jp/2016/04/fittingdraw.html

フチ文字を描く


フチ文字を作るには、アウトライン文字に、通常の塗りつぶし文字を重ねてあげます。
パスを作って線を太らせただけだと字形がつぶれてしまうので、上から白文字で抜いてあげます。

// using System.Drawing;
string str = "Hallo World!";

Graphics g = this.CreateGraphics();
g.SmoothingMode = SmoothingMode.HighQuality;

PointF point = new PointF(5.0f, 15.0f); // 文字を描画する原点(左上)
StringFormat format = new StringFormat();

GraphicsPath path = new GraphicsPath();
path.AddString(str, new FontFamily("Arial Black"), (int)FontStyle.Regular, 36.0f, point, format);

g.DrawPath(Pens.OrangeRed, path);

g.Dispose();

実行結果。


4.0ptの線は、中心から外に2.0pt、内に2.0ptに広がっています。
内に広がっている2.0ptを塗りつぶしたことになるので、フチ文字は2.0ptの太さ。
下記は、白で塗りつぶす前の線を太らせただけの文字。字形がつぶれてしまいます。

2010/02/14

iTunesが落ちる

このエントリーをはてなブックマークに追加

iPodTouch、使ってて思った細かいこと。
iPhoneOS3.1.3、iTunes9.0.3にアップデートしましたが、直っていないようなので。

・iTunesが落ちる。
同期中でも落ちる。平気で落ちるのが、すごく怖い。
特にデバイス内のPodcastを編集しようと、「Podcast」タブを押した瞬間、落ちる。これはとても再現性が高くて95%くらいは落ちる。怖くて編集できません。
アップデートしても効果なし。期待してたのに。
Windows版だから? Mac版はこんな不安定なことはないのかな。

・アルバムでリストアップすると、分裂していることがある。
2つ、場合によっては3つも同じアルバムが連続して表示される。同じ曲がダブって入っているということはない。
復元してもう一回同期させると分裂が直っていることがある。けれど、今度は別のアルバムが分裂していたりする。

・アルバムアート表示では、同名のアルバムがまとめられてしまう。
アルバムアートは個別に表示されているが、その中身はまとめられて表示されていた。
スガシカオの「smile」とthe pillowsの「Smile」という同名のアルバムとか一緒くたになってました。逆に新鮮に聞けたけど、意図したことではないので直してください。