> Java > java지도 시간 > Graphics2D를 사용하여 버퍼링된 이미지에 텍스트를 올바르게 오버레이하는 방법은 무엇입니까?

Graphics2D를 사용하여 버퍼링된 이미지에 텍스트를 올바르게 오버레이하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-29 22:19:12
원래의
380명이 탐색했습니다.

How to Correctly Overlay Text on a BufferedImage Using Graphics2D?

Graphics2D를 사용하여 버퍼링된 이미지에 텍스트 오버레이

Graphics2D를 사용하여 버퍼링된 이미지에 텍스트를 오버레이하려고 할 때 올바른 사용법을 이해하는 것이 중요합니다. drawString()' 메소드의 이 방법에 제공된 x 및 y 좌표는 텍스트의 왼쪽 위 모서리가 아닌 텍스트의 가장 왼쪽 문자에 대한 기준선을 나타냅니다.

문제:

텍스트에 내림차순 문자(예: 'p' 또는 'g')가 포함되어 있지 않고 (0,0) 위치에 렌더링되면 이미지 외부에 렌더링된 것처럼 보입니다. 이는 주어진 공간에 문자가 표시될 공간이 없기 때문입니다.

해결책:

텍스트가 이미지 내에서 렌더링되도록 하려면 대신 이미지를 렌더링하고 직접 수정하는 것이 좋습니다.

코드 예:

"Hello, world!"라는 텍스트가 포함된 이미지를 렌더링하는 다음 코드 예제를 살펴보세요. 오버레이:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;

public class TextOverlay {

    public static void main(String[] args) throws IOException {
        // Read the image from a URL
        BufferedImage image = ImageIO.read(new URL("image-url"));

        // Create a new image to draw on
        BufferedImage newImage = new BufferedImage(
                image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);

        // Get the graphics context for the new image
        Graphics2D g = newImage.createGraphics();

        // Draw the original image onto the new image
        g.drawImage(image, 0, 0, null);

        // Set the font and color for the text
        g.setFont(new Font("Serif", Font.BOLD, 20));
        g.setColor(Color.red);

        // Calculate the position of the text
        int x = image.getWidth() - g.getFontMetrics().stringWidth("Hello, world!") - 5;
        int y = g.getFontMetrics().getHeight();

        // Draw the text onto the new image
        g.drawString("Hello, world!", x, y);

        // Dispose of the graphics context
        g.dispose();

        // Save or display the new image
    }
}
로그인 후 복사

이미지가 렌더링된 후 수정하면 이미지 자체 내에서 텍스트가 올바르게 오버레이되는지 확인할 수 있습니다.

위 내용은 Graphics2D를 사용하여 버퍼링된 이미지에 텍스트를 올바르게 오버레이하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿