首頁 > Java > java教程 > 為什麼我的文字疊加不能正確顯示在 BufferedImage 上?

為什麼我的文字疊加不能正確顯示在 BufferedImage 上?

Patricia Arquette
發布: 2024-12-02 03:05:28
原創
765 人瀏覽過

Why Doesn't My Text Overlay Appear Correctly on a BufferedImage?

BufferedImage:文字疊加並回傳

對文字繪製座標的誤解

對文字繪製座標的誤解

調整文字基線

gO.drawString(this.text, this.x, this.y + 12);
登入後複製
至為了彌補這一點,調整你的y 座標以適應字體的高度:

這假設你正在使用基線為12px 的字體。如有必要,您可以相應地調整偏移量。

顏色模型注意事項

private BufferedImage process(BufferedImage image) {
    Graphics2D g2d = image.createGraphics();
    // Code to overlay text...
    g2d.dispose();
    return image;
}
登入後複製
值得注意的是,由於影像中使用的色彩模型,您也可能會遇到不相容的情況。考慮使用合適的顏色模型渲染圖像,然後使用以下方法在原位修改它:

在這種方法中,文字直接繪製到現有圖像上,確保相容性。

完整修正程式碼
protected BufferedImage Process2(BufferedImage image){
    Graphics2D gO = image.createGraphics();
    gO.setColor(Color.red);
    gO.setFont(new Font( "SansSerif", Font.BOLD, 12 ));
    gO.drawString(this.text, this.x, this.y + 12);
    System.err.println(this.text+this.x+this.y);
    return image;
}
登入後複製

以上是為什麼我的文字疊加不能正確顯示在 BufferedImage 上?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板