JavaでStrokeを変更してお絵かきするとプルプルする現象の対策

大分意味不明なタイトルですが、Javaでお絵かきソフトを作る際に少し躓いたところの対策メモです。 まず、MousePressed メソッドと MouseDragged メソッドに、以下のような絵かき処理のコードを書きました。 int mouseX, mouseY, mouseDragX, mouseDragY; BufferedImage bufImage; private void MouseP…

続きを読む

LZW 圧縮アルゴリズム

gif を生成するクラスを自作するために、今回は LZW 圧縮アルゴリズムの勉強。 LZW アルゴリズムは辞書式圧縮であり、gif や tiff の圧縮に利用されています。 LZW アルゴリズムの概要 LZW 圧縮アルゴリズムは次の手順で実行されます。  手順0: 文字(数字)列に現れる文字の種類の数だけ、それぞれ辞書に登録しておく。  (文字列が 0~255 の範囲であれば、辞書は 256 ペー…

続きを読む

最小サイズのgif画像とアニメーションgif

Java で gif アニメーションを作りたいと思い、色々と調べる過程で 最小サイズの gif 画像や gif アニメーションを作ってみたので、そのメモ。 以前はJavaのクラスでgifを書き出していましたが、 今回は gif の仕様を調べて、バイナリ出力させています。 LZW 圧縮アルゴリズムのコードを書くのはもう少し時間がかかりそうですが、 ヘッダや大まかな構造は次のページを参考になんとなく理…

続きを読む