Java™ SE 6.0 での Java 2D の拡張機能

主な機能:
修正されたバグ
既知のバグと問題

主な機能

テキストのレンダリング

イメージング

ジオメトリ

 

印刷

修正されたバグ

6182443 回転されたアンチエイリアス処理済みテキストのグレーが薄すぎる

このバグは基本的に、非四分円変換のヒントをオフにすることの副作用です。この問題は、4654540 の修正の一部として解決されました。

4151279 楕円、弧、および角の丸い矩形のレンダリング中に視覚的なアーティファクトが現れる

3 次および 2 次のベジェ曲線の描画用として、適応的前進差分が適用されるパイプラインが別個に開発されました。このアプローチを使うと、ベジェ曲線の描画品質と描画速度が顕著に改善されます。

4924220 Microsoft Sans Serif (True Type) フォントが正しくレンダリングされない

スキャン変換アルゴリズムの現在の実装のため、Microsoft Sans Serif フォントのグリフが破損しているように見えていました。6282527 バグの修正の一部として、スマートドロップアウトメカニズムが追加されています。

6300721 動画 GIF イメージを異なるイメージフレームを使って繰り返し作成すると、VM がクラッシュする

あたかもコードが配列の末尾より後の領域にアクセスしたかのように Java ヒープ内でメモリーが破壊された結果として、VM のクラッシュが発生していました。この修正は、イメージの最初の部分が取得された時点でイメージ表現コードの寸法をチェックします。寸法が一致しない場合には、内部バッファー内のイメージが作成し直されます。

6279846 ColorConvertOp インスタンスに指定されたソースとデスティネーションの ColorSpace が同じである場合にピクセル値が異なる

ColorConvertOp インスタンスに指定されたソースとデスティネーションの ColorSpace オブジェクトが同じであった場合に、色変換されたデスティネーションと元のソースとの間でピクセル値が異なっていました。このバグを修正するために、sRGB プロファイルが更新され、高速トラックが作成されています (色変換は一切行われない)。

4654540 拡大縮小および反転行列によるテキストレンダリングでのヒントのサポートが必要

Truetype ヒントは、ピクセルグリッドに関するグリフの方向が固定されるという前提で設計されました。それが、回転、変形、拡大縮小などの複雑なアフィン変換が truetype ヒントでサポートされなかった理由です。その修正として、次のアプローチが実装されています。

6397684 PrintService オブジェクトの設定時に名前を指定しないと JVM がクラッシュする

PrintService オブジェクトの設定時に名前を指定しなかった場合 (getName() メソッドが null を返す場合)、JVM がクラッシュしていました。この問題の原因は、次のような特定ユーザーの実装でした。PrintService インタフェースの getName() 関数から null が返され、この null 値がネイティブ関数 setNativePrintService に渡されていました。

6444688 Windows 上で透明ピクセルを含む IndexColorModel イメージの印刷が失敗することがある

Windows プラットフォームで、ビットマスク透明度を含むイメージの印刷が正しく行われないことがありました。ビットマスク透明度を使用している場合に問題が存在していました。印刷コードは、ビットマスク透明度を、元のイメージのより小さな複数のサブイメージとして処理していました。この修正には、もっとも単純でリスクの少ない解決方法が含まれています。それは、常にイメージのコピーを作成することです。

6320281 Type1 ヒントのサポートが欠けている

JDK 6 より前に Java のフォントラスタライザがサポートしていたヒントは、Truetype フォントに対するヒントだけでした。しかし、Solaris および Linux プラットフォームでは Type1 フォントが一般的に使用されており、ヒントを使用しない Type1 フォントは通常、あまり自然には見えませんでした。type1 のヒントをサポートするために実装された機能は、次のとおりです。

4912220 1.4 リグレッション: 反転と非対称の拡大縮小を組み合わせるとしばしば、フォントが変形してしまう

Truetype のヒントは、任意の変換のサポートを想定せずに設計されました。この制限を克服するため、重要な変換が要求された場合には、「安全」な単位行列を使ってヒントを適用したあと、ヒント適用後の輪郭を変換します。この問題は、4654540 の修正の一部として解決されました。

5051527 イメージのより高速かつ直接的なソフトウェア変換

イメージ変換用のコードは、イメージ処理ライブラリを使って処理を実行していました。このアプローチでは、変換処理を行うたびに少なくとも 1 つの中間バッファーを作成する必要がありました。新しいコードでは、任意の内部処理形式の変換と任意の内部処理形式への合成を、1 つの処理内で、スタックで割り当てられた最小の 1 行ピクセルバッファーのみを使って行えます。

既知のバグと問題

6343853

Windows Vista では、DirectDraw によるハードウェア高速化は現時点ではデフォルトで無効になっていますが、これは、Vista のデスクトップウィンドウマネージャーとの互換性に問題があるからです。

-Dsun.java2d.noddraw=false プロパティーを使えば、DirectDraw パイプラインの使用を再度有効にできます。ただし、レンダリングアーティファクトやパフォーマンスの問題のため、それはお勧めできません。Direct3D パイプラインも有効にするには、前述のフラグと -Dsun.java2d.d3d=true を組み合わせて使用するようにしてください。

 


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.