usakdsteen

ゆうさくですてぃーん

無意味なり

オープンアプリ用のPNGの画像ファイルを

BMPからの変換ソフトを自前で作ってみようかなとか

オープンアプリで透明色つか背景色つうか出来るPNG画像がほしかったから

それ作れるソフトがほしいなと。

Windows標準のペイントだとそういうの設定できないし

フリーソフトのPictBearで作ると

何故か知らんがエクスプローラで右クリック→プロパティで概要みると

ビットの深さが32とかになっちゃうんだよね。

オープンアプリで使えるのか使えないのかワカランが

なんとかビットの深さが8のままにできないかと

思ったのがきっかけなんすよ

一応、非圧縮は出来たっぽい

非圧縮のPNGを閲覧できるのが

WindowsXPの標準のビューアとペイントだけっぽいゆえ

Windows95で作ってたからわかんなかったんだわ

ブラウザでさえ見れないんだもんな

それと、さすが非圧縮。サイズがでかいw

元のBMPと大差ないww

だって圧縮アルゴリズム難しそうでさぁ・・・

この非圧縮のも作るの結構大変だったんだよ

まずVB6の標準のファイル入出力、PUT,GETではリトルエンディアンでしか

読み書きできないっぽくて

でもPNGはビックエンディアンでしょ。

さらにCRCやADLER32の計算。

VB6は符号有Longだから、符号なしLong用の計算とか

ビット演算の右シフトとか左シフトとかどうやんのかわかんなくて

自前でシフト関数作ったし、

たぶん、APIを探せば、そういうの出来るのあったのかもしれんが

見つけたとしてVB6で使えるのかもわからんしなぁ

引数の関連がよくわからんし。引数の型をVB6用に直すのは骨が折れすぎる

論理シフトなら原理分かってるから作るのはそう難しくなさそうな感じだったしな

さて、今後、圧縮アルゴリズムまで作るかはまた考えるわ。

今回PNGファイルのチャンク名だけ取得できるというのを作って

前述のPictBearで作ったPNGやペイントで作ったPNGのチャンクを調べたら

まぁ色々と分かったことがあって、

PictBearで透明色設定したPNGはビットの深さがちゃんと8になってて

俺が危惧していたことが見当たらなかったからね

どうやらエクスプローラーのプロパティの情報がおかしいっぽい

だから、まだ試してないんだけど、PictBearで透明色設定したPNG

オープンアプリ内でちゃんと扱えるかチェックしてみるわ。

すくなくともオープンアプリのアイコンには使えるのは確認済みなのでね

ちなみに今俺はペイントでPNG保存しないで

何故かBatchGOOというフリーソフトBMPからPNGに変換してるんだわ

何故そうしてるかの理由は忘れた。BatchGOO使ったきっかけは覚えてるんだがな

Javascriptで作ったもぐらたたきの画像をオープンアプリに転用しようとしたから

その画像をPNGにしたかったから変換ソフトがほしかったというのが理由だが

まぁ今となっては謎だなぁ・・・

しかしWindows標準ペイントは多種多様な保存形式があるにもかかわらず

細かな設定が一切できないとはな・・・使えん。

自前でペイントソフトくらい作れたらええのにとか思うわ。

無理だが。