«前の日記(2001年08月21日 (火)) 最新 次の日記(2001年08月23日 (木))» 編集

ゆいどっと


2001年08月22日 (水) そのご [長年日記]

_ たいふう

朝起きたら,とっくに台風どっかいってる.けっきょく夜中じゅう,雨が多少よこなぐり? の程度か.写真撮ろうとしたけど,暗くて撮れるはずもなく.

_ やっぱり

寝過ごした.いつもは閉めてない雨戸で部屋の中がまっくら.

_ たいふういっか

台風がすぎたあとって,カラっと晴れるもんだと思っていたんですが,今日は一日ジットリとした暑い日.雲も多い.そうかまだ台風いるんだな.しぶといな.

_ おえ

NTさんの実験的「実験的日記」にあった消し方を見て,OE消し.確かに消したファイルが復活する.WinNT\ServicePackFilesがどうもdllcacheディレクトリと同じような働きをしてるようなので,この中のファイルを消す.INFファイルを調整してないので,ディレクトリは残るし,「復旧できません」ダイアログが出るけど無視.完全に消えたと思う.これでOEのActiveXコンポーネントも,レジストリは残ってるけど実行バイナリは消えただろう.

注)何のことかわからない人は絶対やらないこと.やるなら自己責任でね.

_ PNG

気になった,というか,そういうの作らなきゃいけないこともあるだろうってことで,透明色がどうなるかいろいろ試しました.

まずはPNGの仕様を調べ.いちおうVer1の仕様で,インデックスモード(Fireworksで言うPNG8)でもパレットに対してアルファチャンネルを持てるらしいです(別途の透過チャンクで).実際,FWでPNG8を書き出すとき,アルファチャンネル付パレットを使えます.また,PNG32で素直なRGBA形式になりますが,これはWebではあまり用がないというかアルファチャンネルがきちんと処理できない以上意味がなのでおいときましょう.PNG24はRGBだけしか持ちません.

さて,PNG8をIEで読ませると,50%とかの半透明になるアルファチャンネルは変な色になります.透明部分に見える色は,そのピクセルに割り当てられたRGB値×アルファのように見えます(?).背景とアルファブレンドしてません.背景に何を置いても,レイヤーを重ねても,IEだとそのイメージは完全不透明色としてみなされてるようです.

予想なのですが,IEはアルファチャンネルまできちんと読み込んでいるんだけど,表示するときにええかげんに転送してる気がします(Win32APIのDIBにアルファブレンドの仕様が入ったのってかなり後ですよね?),まぁ全然関係のない色(灰色のはずが真っ黒とか)が表示されることもありますので,きちんと読み込んでるかどうかも怪しいですが.

というわけで,結果としてアルファチャンネルを持たせないように,透明色1色で抜くというGIFの方法がいちばん確実です.アルファチャンネルを持たせると,使いもしないのに読み込んで変な色を出すことがあります.あぁ,わかりきった結論.

_ ちなみに

FWの方にもちと問題が.PNG8でアルファ付のパレットを書くときに,パレットのアルファ値を直接指定できないです.RGBはもちろん指定できますが,アルファ値は元画像のアルファチャンネルから自動的に割り当てられます.Web用の絵の作成のように,色をシビアにコントロールしたいときには使えないような気がします.元絵を作るときに意識してレイヤーを分けるとかして,必ず色が一意に定まるとかすればいいんですが,そりゃ無理というかイヤです.

ついでに,そうやって書き出したPNGをFWに再度読み込ませると,アルファチャンネルの情報だけ内部形式に変換して,パレットはRGBだけになります.たとえば,色は黒1色でアルファチャンネルだけ違う16個のパレットを持つPNGだとすると,FWでの読み込み・表示はちゃんと半透明になっているのに,パレットは黒が16個並んでいます.インデックスモードのときにアルファチャンネルの仕様が中途半端に見えます.うーん.FWで作るときにも,結局透明色1色だけを抜くという方法が確実なんじゃないかなぁ.それとも何か方法あるのかなぁ.

_ あれ?

DHTML使うと,絵全体の透明度は変えられるようです.フェードインとかフェードアウトとかできるようです.もちろんIE完全依存ですが.てことは表示エンジンがアルファブレンド対応してそうなんだけどなぁ.PNG8でもアルファチャンネルで抜く方法あるのかなぁ.

本日のツッコミ(全7件) [ツッコミを入れる]
_ ただただし (2001年08月22日 (水) 23:39)

うーん……ぜんぜん理解できない(笑) >PNG話<br>まいっか(いくない)。

_ NT (2001年08月23日 (木) 00:13)

OE を消すのはあの手順ですら面倒なのに、更に面倒になってしまったのですね。 <br>そのうちクリーンインストールする予定なので、その時消すことにします。

_ Yui. (2001年08月23日 (木) 00:45)

きちんと図を入れて実際の表示がどうなるか見えないとわけわかめですね.すません.ようするに,GIFと同じような「1色透明」が確実に見える方法,ってのが言いたいだけです.^^;

_ yamk (2001年08月23日 (木) 00:48)

UNISYS に屈して GIF を使う (10点)<br>つーか UNISYS の LZW 特許ってそろそろ切れるんじゃなかったっけ? 違ったかな?

_ Yui. (2001年08月23日 (木) 00:52)

SP2を入れると別の場所にリカバリ用のファイルができるので,手順としては一緒なんですが,2ヶ所あるのが面倒ですね.SP3以降を入れるときにたぶんまた強制的に増えそうな気もしますが(苦笑).

_ Yui. (2001年08月23日 (木) 01:04)

そういう私はGIF使ってます.^^; あぁ屈してる.

_ ただただし (2001年08月23日 (木) 08:54)

うん、それはわかりました(笑) >「1色透明」が確実に見える