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, 2020, Oracle and/or its affiliates. All rights reserved.