困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Unityの話~画像のサイズを取得(しようとして、ちょっと詰まった話)~

画像情報として、サイズを取得したいという事はよくある。
Unityであれば、アプリケーション側の実装であれば、ImageやらSpriteやらTexture2Dやらから簡単に取得できるが、
今回は、EditorScript側で読み込んだ画像のサイズを取得したかったので、ちょっとだけ詰まった。

qiita.com

※元記事の人の情報が間違っているというわけではないので、勘違い無きようお願いします。

ここを参考にしたのだが、どうやらUnityでは

using System.Drawing.Imaging;

これは使えないようだ。

error CS0234: The type or namespace name 'Imaging' does not exist in the namespace 'System.Drawing' (are you missing an assembly reference?)

仕方が無いので、 qiita.com

こちらを参考にした。

using (BinaryReader bin = new BinaryReader(new FileStream(fileName, FileMode.Open, FileAccess.Read))) {
    byte[] rb = bin.ReadBytes((int)bin.BaseStream.Length);
    bin.Close();
    int pos = 16, width = 0, height = 0;
    for (int loop = 0; loop < 4; loop++) width  = width  * 256 + rb[pos++];
    for (int loop = 0; loop < 4; loop++) height = height * 256 + rb[pos++];
}

ちなみに、Editor上で何か保存した際のカレントディレクトリは、Editorスクリプトの位置になるっぽいので、  
他のディレクトリに何かを保存したいときは、パスの設定に注意。