2007年3月23日金曜日

PDFのグラフィックスを取得して絵を描く

PDFファイルのGraphicsを取得する方法です。
Graphicsが取得できれば、イメージ貼り付けたり線を描画したり出来ますね。
PDF用のライブラリはiText.jarが以下のHPから
http://www.lowagie.com/iText/docs.html#download
日本語フォントを使用するために、iTextAsian.jarを以下からダウンロードしてください。
http://prdownloads.sourceforge.net/itext/iTextAsian.jar?download

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-31.htmlへ移動しました。

2007年3月22日木曜日

EXCELファイルのセルのピクセル数

Excelファイルのセルのピクセル数を取得するサンプルです。
かなり強引なプログラムです。
ただこうやるとうまくいきますので、必要なピクセル数にちゃんとイメージが張り付きます。
getHeightInPointsという関数はあっても、getWidthInPointsという関数はないです。
なぜ?Excelというのはそういう世界なんでしょうか?

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-30.htmlへ移動しました。

2007年3月17日土曜日

図形の回転(AffineTransform)

X,Yを中心にして点を回転させるサンプルです。
したの例では90度反時計回りにまわしてます。
点が移動できれば、線でも何でも図形はまわせますね。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-29.htmlへ移動しました。

2007年3月15日木曜日

EXCELファイルにイメージを貼り付ける(POIFSFileSystem)

EXCELファイルにイメージを貼り付けるサンプルです。
こちらからライブラリをダウンロードします。
2.5.1と、3.0alphaがあって、3.0alphaの方を使用しないとイメージは扱えません。
HSSFClientAnchorでセルの位置とセルの数を指定します。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-28.htmlへ移動しました。

2007年3月13日火曜日

EXCELファイルの読み込み(POIFSFileSystem)

EXCELファイルをJavaで読み込むサンプルです。
こちらからライブラリをダウンロードします。
2.5.1と、3.0alphaがあって、何が違うかというと、自分が使っているのはイメージを貼り付けられることです。
イメージの貼り付けは別のページで紹介します。
下記は3.0alphaの文字を読み込むサンプルです。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-27.htmlへ移動しました。

2007年3月11日日曜日

ボタンのサイズ変更

Appletのコンポーネントってサイズを自動的に決められてしまうのが一般的ですが、
たまにボタンを他のボタンと揃えたいときもありますよね。
Layoutの選択によっていろいろですが、ボタンの文字数によってボタンのサイズが決められてしまいます。
自分は以下の方法でサイズ調整してます。あまり余白を削りすぎると、今度は表示文字を削られてしまいますので要注意です。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-26.htmlへ移動しました。

2007年3月8日木曜日

添付ファイル付きメールの送信

メールに画像などを添付して、送信するサンプルを載せます。
JAFというライブラリを使用しますので、以下からダウンロードしてください。
http://java.sun.com/products/javabeans/jaf/downloads/index.html
添付ファイルはURLを指定することも可能です。
その場合はURLDataSourceを作成します。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-25.htmlへ移動しました。

2007年3月7日水曜日

イメージサイズ変更3

イメージサイズ変更で、もっとも遅いですが、きれいな方法です。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-24.htmlへ移動しました。

シングルトン

シングルトンクラスは、メモリの負担を軽減します。
メモリ上にオブジェクトが一つしか存在しなくなるので、例えば別のサーブレットから
そのオブジェクトを共有できるので、非常に便利です。ただし同期を常に意識しないと、
オブジェクトに変更があった場合、他のプログラムが影響を受けてしまいます。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-23.htmlへ移動しました。

ファイルのダウンロード

クライアントにファイルのダウンロードさせるサンプルです。
ブラウザではいきなりファイルが開くのではなく、「保存」するか「開く」かを選択してもらうダイアログが表示されます。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-22.htmlへ移動しました。

イメージサイズ変更2

イメージサイズ変更で、早さもきれいさも中間の方法です。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-21.htmlに移動しました。

2007年3月4日日曜日

イメージ減色処理

減色処理はJimiの ColorReducer を使用します。
Jimiのライブラリは以下からダウンロードしてください。
http://java.sun.com/products/jimi/

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-20.html

イメージファイル出力(TIFF)

TIFFファイルの出力は以下を参考にしてください。
ライブラリとしてJAIを使用します。以下からダウンロードしてください。
http://java.sun.com/javase/technologies/desktop/media/jai/
グラフィックスにお絵かきする部分は適当に編集してください。
圧縮の指定 encParam.setCompression を TIFFEncodeParam.COMPRESSION_PACKBITS
以外のもっと圧縮率の高いものを指定してもうまく動作しないです。
実装方法が悪いのかもしれませんが。。。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-19.htmlへ移動しました。

イメージファイル出力(BMP)

BMPファイルの出力は以下を参考にしてください。
ライブラリとしてJIMIを使用します。以下からダウンロードしてください。
http://java.sun.com/products/jimi/
グラフィックスにお絵かきする部分は適当に編集してください。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-18.htmlに移動しました。

2007年3月3日土曜日

イメージファイル出力(PNG)

PNGファイルの出力は以下を参考にしてください。
ライブラリとしてJIMIを使用します。以下からダウンロードしてください。
http://java.sun.com/products/jimi/
グラフィックスにお絵かきする部分は適当に編集してください。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-17.htmlへ移動しました。

イメージのサイズ変更1

イメージのサイズ変更にはいくつかの方法があります。
早いけど、荒くなる方法、きれいだけど、遅くなる方法。。。
3パターン公開しますので、イメージの種類や用途によって使い分けてください。

まずは、早いけど、荒く表示される方法です。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-16.htmlへ移動しました。

ファイルの圧縮(Zip)

基本的なZipファイルの圧縮サンプルです。
特に追加ライブラリは必要ありません。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-15.htmlへ移動しました。

2007年3月2日金曜日

ファイルの解凍(Lha)

Lhaファイルの解凍のサンプルを投稿します。
Lhaファイルを解凍するためのライブラリは、
http://homepage1.nifty.com/dangan/Content/Program/Java/jLHA/LhaLibrary.html
からダウンロードします。
java.util.zipに似ているので、分かりやすいです。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-14.htmlに移動しました。

2007年3月1日木曜日

ファイルの解凍(tar+gz)

ファイルの解凍のサンプルを投稿します。
今回は tar と gz の組み合わせで圧縮されたファイルの解凍です。
Linuxユーザでは一般的ですね。
TarInputStreamは jakarta-ant のライブラリを使用しますので、
Jakartaサイトからダウンロードしてください。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-13.htmlに移動しました。

LittleEndian対応の出力ストリーム

JavaはBigEndianですが、LittleEndianのファイルを出力する場面がたまにあります。
Javaはあれだけライブラリがあっても、バイト操作関係は貧弱ですよね。
LittleEndianの出力は以下を参考にしてください。
入力ストリームのほうはIntegerの場合を書きましたが、出力はLongとDoubleです。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-12.htmlに移動しました。

LittleEndianバイトオーダー対応の入力ストリーム

JavaはBigEndianですが、まれにLittleEndianのファイルを入出力しなければならない場合があります。
Javaはバイト操作関係が非常にやりづらいと思うのは私だけでしょうか?
LittleEndianの入力ストリームは以下を参考にしてください。
intの場合だけしか書いてありません。ここまで書けばshortやdoubleも大丈夫ですよね。

サンプルはhttp://javatec.blog105.fc2.com/blog-entry-11.htmlに移動しました。