YahooAPIを利用してルビを振るやつ

だいたい8年ぐらい前にやったネタなんですけど、未だに動きます。ここはYahooさんに感謝したいところです。
そんなに長いコードではありませんが、44行目だけ自分でYahooAIPに登録してふりがなAPIを利用するためのアプリケーションIDというのを取得して設定しなければならない仕様になっています。詳しくは以下をご参照ください。

https://developer.yahoo.co.jp/webapi/jlp/

ExtendScriptでのソケット通信のお手本みたいな構成になっていますので、そこら辺の事を重点的に見ていただくと勉強になるかもしれません。
もちろん、総ルビとかで息絶え絶えになりそうなときなんかに役に立ちます。コード自体は以下から取ってきてください。

https://github.com/ten-A/Extend_Script_experimentals/blob/master/group_ruby.jsx

繰り返しになりますが、YahooAPIのアプリケーションIDを書き換えないと動かないのでそこらへんの事にご注意ください。
ちなみに、わたし自身はこれで総ルビ振った後にMonoRubyエクステンションで手を加えていくようなワークフローで処理しています。(^-^)/

 

 


[AI]消費税を8→10%に変更するスクリプト

さて、皆様におかれましてはご清祥の事とお慶び申し上げます。中には本年中のお仕事も納まってしまって年越しの準備を進められている方も多いかと存じます。
皆様はどんな一年だったでしょうか?良かった人も散々だった人もいらっしゃることとは思いますが、良かった人はそれなりに、悪かった人もそれなりに適当に新年を迎えればよろしいかと思いますです。

そんなこんなで、わたしも来年の準備をやってみました。来年は消費税の増税があります。恐らく既存データの流用等がたくさんあるはずで、ある日を境に全て数字を変更しなければならない様な羽目になるわけですが、それを少しだけ楽にします。

続きを読む……


Reset Textframes Transformation.

Here is a little working concept code you can reset your selected textFrames shear, rotate and reflection. TextFrames have transform matrix. Here is a snipet of get it from a selected textFrames.

alert(app.selection[0].matrix); //Select only target textFrame.

We can invert it using applications method like below

alert(app.invertMatrix(app.selection[0].matrix));

Previouse two snipets return same “[Matrix]”. However, 2nd matrix is inverted values as you see below that make the Property Explorer’s result.

You can use below to test how it works.

var mtx = app.invertMatrix(app.selection[0].matrix);
 mtx.mValueTX = 0;
 mtx.mValueTY = 0;
 app.selection[0].transform(mtx)

*Both TX and TY values are global position. when you inverse it, object moves to outside of maximum canvas size range. Therefor, we need reset these values to 0.

For Japanese…

という事で、諸事情により当面こういった入り混じり系のCodeで話しましょうw状態になります。
今回のものはテキストフレームが持つMatrixプロパティーを利用して変形を元に戻そうというものです。一つ注意が必要なのは変倍は長・平体へ適用されるためマトリクスには情報が含まれませんので戻しようがないところです。まあ、シアーとか微妙な回転をリセット出来るという点は便利ですが…


PNGファイルの情報を読み出すツール

データを取り回しているときに単純なファイル情報を取得して利用したくなる場合が多くあります。例えば画像の縦横のピクセル数とかカラーモードとかとか…
もちろんXMPとか参照したりPSにて調べたりというものありなのですが、もっと簡単にできれば便利じゃないかな???
って思いました。で、出来たのがJPGToolとかいうやつです。こちらはJPGファイルの基本的な情報をバイナリ検索して抽出するものでした。ぐぐればすぐに見つかるので見てみるのも良いでしょう。
しかし今回、なんでPNG見れないんだっ?てなって急遽PNGの情報を抜き出すやつを書きました。

続きを読む……


Apple Color Emojiフォントを見本になにかする その2

後回しにしたチェックサムの件…

OTFフォントのチェックサムというのはとても面白い仕組みです。基本的に32bitの符号なし整数なのでファイルの頭から4バイトづつ読み出して全部足した下位32ビット分がそれに当たるのですがどのフォントを見ても0xB1B0AFBAになります。日本語フォントであろうが欧文フォントであろうが0xB1B0AFBAです。TrueType、ポストスクリプト系等は全く関係ありません。それもそのはず、headテーブルにChecksum Adjustmentっていうやつがあって、全体足したやつを0xB1B0AFBAから引いたデータとして書き込んであるからです。本日の豆知識でしたw

続きを読む……


Apple Color Emojiフォントを見本になにかする その1

何気なくつぶやいたら思いの外反響のあった絵文字フォントの件なのですが、一足飛びにsbixだけを解説してお茶を濁すのも面白くありません。ので、全体構造から始まり、適宜必要なツールを作りながらフォント構造を紐解いていく事にします。
まず、オープンタイプっていうのは色々な規格のデータを寄せ集めてまとめたものです。構造を見てみると本当にひどいものです。旧来あったものを大企業が主に利害をぶつけ合った結果出来上がったもの(暴言w)です。ですから、OpenTypeの構造は旧来のTrueTypeとPostscriptのフォント構造をラップするような仕様になっています。
こんな状況変だよね〜って思ったのかどうかはわかりませんが、ここへ来てOpenTypeが内包する無駄な部分を調整する動きが出てきています。これは主に新しいカラーフォントやバリアブルフォントを効率良く実装する為の変更だったりします。まあ、当然従来からのフォントに対しても利用可能です。しかし、フォーマットの定義としては正しいものができるでしょうが既存のアプリケーションが正しく扱えるかどうかはまた別のお話です。そこらへんが今ひとつよくわからなかったりするのですが、そのへんは追々ということでよろしいかと思うのです。興味深いのはCFFまわりというかCFFの後継フォーマットのCFF2テーブルというのが追加されたことです。CFFというフォーマットはAdobeが作ったもので、Type1フォントの3次のベジェ曲線をサポートするためのコマンド群を含みます。当然AppleやMSは全くノータッチで、ドキュメントすら「Adobeの読んだら?」って状態でした。ところが、このCFF2テーブルに関してはMSからドキュメントがリリースされています。そして、中身はというと従来のType2Stringコマンドをばっさりと切り捨ててコマンドがスカスカの状態になっています。なぜこうまでしてCFFを使うのかと言いますと、このテーブルはかなり圧縮が効きます。Pr6などのOTFフォントがあの容量で収まるのはこのCFFのご利益といえるでしょう。そして、展開もそう複雑な処理になりませんので負荷が軽くて済みます。このへんのところというのは1990年代の非力なマシンでの利用を想定していたPostscriptフォントの特性を残しつつといったところでしょう。でも、パース処理は煩雑になります。やんなっちゃうw この辺に関しては、そのうちご説明できる機会があるかもしれません。
大幅に脱線しました。絵文字フォントに関してですが、高解像度ビットマップをグリフとして扱うものとSVGを利用したベクターベースのものがあります。今回はApple Color Emojiフォントを紐解く為のものですからビットマップベースのフォントを見ていくことになります。

続きを読む……