为了账号安全,请及时绑定邮箱和手机立即绑定

文本形状的图像裁剪

文本形状的图像裁剪

慕少森 2019-07-05 15:26:35
文本形状的图像裁剪我需要在另一个图像中剪出一个文本形状的图像。我认为最好用图片来展示。文本图像将始终是黑色的透明背景,并由此产生的剪除也应该有一个透明的背景。两个输入图像也将是相同的大小。
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

创建一个新的BufferedImage并对Word cat的所有像素进行迭代,如果它们是黑色的,则将cat图像像素复制到新图像中。

以下是一些代码:最后的工作代码,支持反别名。)

public static BufferedImage textEffect(BufferedImage image, BufferedImage text) {
    if (image.getWidth() != text.getWidth() ||
        image.getHeight() != text.getHeight())
    {
        throw new IllegalArgumentException("Dimensions are not the same!");
    }
    BufferedImage img = new BufferedImage(image.getWidth(),
                                          image.getHeight(),
                                          BufferedImage.TYPE_INT_ARGB_PRE);

    for (int y = 0; y < image.getHeight(); ++y) {
        for (int x = 0; x < image.getWidth(); ++x) {
           int textPixel = text.getRGB(x, y);
           int textAlpha = (textPixel & 0xFF000000);
           int sourceRGB = image.getRGB(x, y);
           int newAlpha = (int) (((textAlpha >> 24) * (sourceRGB >> 24)) / 255d);
           int imgPixel = (newAlpha << 24) |  (sourceRGB & 0x00FFFFFF);
           int rgb = imgPixel | textAlpha;
           img.setRGB(x, y, rgb);

        }
    }
    return img;}


查看完整回答
反对 回复 2019-07-05
?
跃然一笑

TA贡献1826条经验 获得超6个赞

使用GlyphVector..使用Font班级,等级

public GlyphVector layoutGlyphVector(FontRenderContext frc,
                                         char[] text,
                                         int start,
                                         int limit,
                                         int flags) {

你可以得到轮廓Shape从字形矢量到公共抽象形状getOutline()

分配大纲Shape作为你的剪贴画Graphics举个例子。

在图形上绘制图像。

只有剪裁过的形状才会被填充。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 383 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号