忍者ブログ

4次元ラボ

多分、真実を伝えるブログ!

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

バイナリを理解してPNGmascotを魔改造したい!

今のPNGmascotは正直、雑過ぎて全然ダメです。
バイナリというものを理解する前に作り始めてしまったのが失敗でした。
画像の解像度を取得するのさえGDI+任せ。PNGアニメーションに至ってはAPNG Disassemblerという別の人が作ったプログラムに任せているだけである。

バイナリをちゃんと勉強してPNGファイルから解像度、画像データ、アニメーションの情報などを取り出す事にしました。

これはPNGファイル内のIHDRチャンクの仕様。



何度も仕様を見てからバイナリエディタでPNGファイルを開いてみると・・・分かる!!


ただ読み取れる形式?で取得するにはビッグエンディアンを理解しないといけないらしい。

なるほど・・・分からんw

分からないけどHSP3掲示板にサンプルが用意してあって助かりました!
これ使ってPNGファイル内の情報全ての取得に成功しました。



そういう訳で効率を大幅に改善するために久しぶりに頑張ってます。
自分もPNGmascotを使ってて不便を感じることが多いのですよね。

PNGだけじゃないのですが、まあメインかつ単純で分かりやすいPNGから手を付けていきます。
時間は掛かりますがその価値は十分にあるでしょう。

[PNGmascot] カラープロファイル付きのJPEGが変色する件

JPEGファイルってカラープロファイル(ICCプロファイル)とかいうよく分からないものを埋め込めるんですよね。
JPG以外にもTIFFやPDFにもあるみたいなんですけど。
そのカラープロファイルが埋め込まれている画像ファイルを読み込むと正しい色にならないという問題に気が付きました。

結論として、ImgCtxという古き良き時代(?)の「InternetExplorer」に使われているデコーダを使って読み込むことで解決しました!

ちなみにWindows10に標準で入っている画像を扱えるソフト(ブラウザを除く)では「フォト」以外全てカラープロファイルに非対応でした。
その他のフリーソフトでもメジャーなもの以外は非対応が多いです。



例①
「PNGmascot」で「BGRプロファイル」が付いているJPEGを読み込んだら変色した時の画像。(元画像はこちらからお借りしました)
左は修正前、右は修正後。


例②
「PNGmascot」で「Adobe RGB (1998)プロファイル」が付いているJPEGファイルを読み込んだら色があせた時の画像。
左は修正前、右は修正後。


これは微妙な差ですがよく見れば鮮やかさが違うのが分かるかと思います。
こういう事が起こりえるので、保存形式はやっぱりPNGが無難で最高ですね。


既に解決済みですので、その他の問題も修正した後にリリース致します!

[PNGmasoct] 32ビットのビットマップで高速化!

BMP形式の画像にも透過を付けられるって知ってました?私は昨日初めて知りました。
まぁそれはさておき。


32ビットのビットマップから直接、透過ウィンドウを作成する方法を教えてもらったので、
これで画像の読み込みやリサイズなどでかなりの高速化が見込めます!
http://hsp.tv/play/pforum.php?mode=all&num=96797


今までは32bitの画像「24bit(RGB)+8bit(A)」を2つの領域に分けて読み込んでいたためタイムロスが大きかったのです。
これからは画像を32bitのまま読み込んで保存しておき、32bitのウィンドウにコピーして透過できるのでだいぶ速いですね。

扱うのが難しくなること以外はとても良い事です!w



余談ですが、Susieプラグインを使って得られる画像データって24bitなのですね。
透過部分はプラグイン側が自動的に、指定されている背景色とブレンドする仕組みなんだとか。
(これもわざわざ詳しく調べていただき教えてもらった)

[PNGmascot] 動画対応

まだ色々途中ですが、動画を再生して回転とかも出来るようになってます!

対応に当たってはinovia様が製作された「hspdsp.dll」を利用させていただきました。大感謝!

操作するための...コントロールパネル?はまだ作ってない。
面倒だから作らなくていっか!w(冗談)

アイコンが強制的に小さくなるバグ?

128×128でアイコンを生成してるのにショートカットアイコンに設定すると64×64で表示されちゃうんすよ・・・何で?(殺意)
理由が全く分からない。ショートカットじゃない時の表示はちゃんと128×128なのになぁ。256×256にしても同じで何も変わらない。
不思議なバグ(?)だな。




[PNGmascot] 開発進行中です



あらゆる動作の処理速度の改善、壁紙機能追加、Susieプラグイン対応など、ほぼ完了してます。
あとはその他の追加した機能を含め、大量のバグ直し中。

2月1日 前後を目途にリリース予定。

[開発日記] PNGMascotの処理速度を速くしたいが・・・

現状は起動したときにファイルの数が1000個超えるくらいから、固まる時間が長くて気になるところなんですよね。
画像かどうかの判断に時間がかかってるのかと思っていたけど違って、ファイルの並び順を処理するのに時間がかかってた。

どうすればもっと速く処理できるのかなぁ...あと少し工夫すればもっと速くなるはず...だが具体的な方法が中々浮かばないのだ。

他にも画像のリサイズが重いのでどうにかしたいですね。

PNGmascotをsusieに対応させる計画

Susieプラグイン対応の準備中

一ヶ月以上、間が空いてしまいましたが
少しだけモチベが沸いたので開発再開してます。

susie対応は完璧ではなく、使えるプラグインや機能は限られているようです。
でも、対応できれば画像の読み込み速度は数倍速くなる見込みです。

今は"susieプラグインで画像を読み込むモジュール"をPNGmascotに組み込む為に改造しているところです。(簡単なようで難しい)
(モジュールはつーさ☆くーかん様から拝借させていただきました。ありがとうございます!)

上手く行かないsusie plug-in対応

HSP3との相性が悪いのでしょうか...プログラムを再起動するたびに
画像を読み込めたり、読み込めなくなったり、エラーが出るようになったりと超不安定()


これほど不安定となると実用は出来ないなぁ どうしたものか。

今に至ってはエラーしか出なくなって何もできなくなりました!
めでたしめでたし。

別にsusie使わなきゃ出来ない事って無いのでこだわる必要は無いんですけどねー
ただ楽に実装できるというメリットが・・・
PR

- HOME -

最終更新:2023年10月6日

[2023年]
3/29:ソフトウェア更新(v4.69)
「透過PNGをデスクトップに飾るやつ」

[2022年]
10/8:ソフトウェア更新(v4.61)
「透過PNGをデスクトップに飾るやつ」

[2021年]
10/21:追記
「【カスタムメイド3D2】イレイナMODあるじゃん!」

[2020年]
11/22:ソフトウェア更新(v0.7)
「LINEのスタンプ画像のダウンローダーを作ってみた」


↑この欄は手動更新の為、たまに忘れるかもしれません><

(2023年 10/06)
(2023年 02/21)
(2023年 02/20)
(2023年 01/27)
(2022年 10/14)
(2022年 10/02)
(2022年 07/17)
(2021年 04/28)
(2021年 02/26)
(2021年 02/19)
(2021年 02/14)
(2021年 02/14)
(2021年 02/11)
(2021年 02/05)
(2021年 02/02)

父親がストーカー [03/08 懐かしのcutting78]

自己紹介:
趣味で色々やってます。
最近はHSPでプログラミングしたりアニメみたり。
金と流行りに目が無い。(故に貧乏)
かなりコミュ障。(人見知り)

主な生息地 :
Twitter
YouTube
niconico
ひまわり動画
HSPTV!掲示板

好きなもの :
萌えアニメ、ゲーム、PC