相关疑难解决方法(0)

剪出文字形状的图像

我需要在另一个图像中剪切出文本形状的图像.我认为它最好显示在图像中.

这是一张猫的照片:

一只好的猫的照片

这是我要删除的文字:

文本切出猫照片

生成的图像是这样的:

导致猫照片的剪切

文本图像将始终为黑色并具有透明背景,并且生成的剪切图案也应具有透明背景.两个输入图像也将具有相同的大小.

java image image-processing

43
推荐指数
4
解决办法
1万
查看次数

Java - 在圆的边缘、顶部和底部绘制文本

我希望在顶部和底部围绕圆的半径绘制轮廓文本,文本的两个部分都面向正确的方向。

如何在AWT中绘制文本周围的轮廓?和用 Java 沿着曲线编写文本帮助我创建了代码(如下),该代码将逐个字符地绘制文本,其中每个字符独立旋转(有一些小的图形故障,这将是另一个问题的主题) 。

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class CreateTextStackOverflow {
    private static final int EDGE_GAP = 10;

    public static void main(String[] args) throws IOException {
        BufferedImage bi = new BufferedImage(364,364,BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = (Graphics2D)bi.getGraphics();

        Font font = new Font("Arial",Font.BOLD,48);

        FontMetrics fm = g.getFontMetrics(font);
        int imageWidth = bi.getWidth();
        int …
Run Code Online (Sandbox Code Playgroud)

java graphics image image-processing

2
推荐指数
1
解决办法
1340
查看次数

为什么Graphics2D.setStoke()不适用于Graphics2D.drawString?

我希望字符串具有不同的宽度,以便我设置Graphics2D的笔划,代码在这里:

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class StrokeTest {
    public static void main(String[] args) {
        StrokeTest test = new StrokeTest();
        test.createUI();
    }

    public void createUI(){
        JFrame frame = new JFrame();
        frame.add(new MainPanel());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    @SuppressWarnings("serial")
    class MainPanel extends JPanel{
        public MainPanel(){
            setPreferredSize(new Dimension(400, 300));
        }
        protected void paintComponent(Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            g2d.setColor(Color.red);
            g2d.setStroke(new BasicStroke(10));
            g2d.drawString("I am a string", 100, 100);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用g2d.setStroke(new BasicStroke(10)) …

java fonts swing awt stroke

1
推荐指数
1
解决办法
1232
查看次数

更改标签文本轮廓的粗细

一开始,我想为我的 Jlabel 添加轮廓,我找到了这个来源/sf/answers/1646483751/并且它可以工作,但我无法更改轮廓厚度的大小。

我想使用相同的代码将标签文本的厚度更改为更厚(因为该代码很容易实现)...但我不明白如何更改轮廓的厚度...任何帮助都会被挪用

package Test2;

import java.awt.*;
import javax.swing.*;

public class OutlineLabel extends JLabel {

    private Color outlineColor = Color.WHITE;
    private boolean isPaintingOutline = false;
    private boolean forceTransparent = false;

    public OutlineLabel() {
        super();
    }

    public OutlineLabel(String text) {
        super(text);
    }

    public OutlineLabel(String text, int horizontalAlignment) {
        super(text, horizontalAlignment);
    }

    public Color getOutlineColor() {
        return outlineColor;
    }

    public void setOutlineColor(Color outlineColor) {
        this.outlineColor = outlineColor;
        this.invalidate();
    }

    @Override
    public Color getForeground() {
        if (isPaintingOutline) {
            return outlineColor; …
Run Code Online (Sandbox Code Playgroud)

java swing text jlabel

1
推荐指数
1
解决办法
1051
查看次数

标签 统计

java ×4

image ×2

image-processing ×2

swing ×2

awt ×1

fonts ×1

graphics ×1

jlabel ×1

stroke ×1

text ×1