画像情報として、サイズを取得したいという事はよくある。
Unityであれば、アプリケーション側の実装であれば、ImageやらSpriteやらTexture2Dやらから簡単に取得できるが、
今回は、EditorScript側で読み込んだ画像のサイズを取得したかったので、ちょっとだけ詰まった。
※元記事の人の情報が間違っているというわけではないので、勘違い無きようお願いします。
ここを参考にしたのだが、どうやら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スクリプトの位置になるっぽいので、 他のディレクトリに何かを保存したいときは、パスの設定に注意。