我已经检查了类似命名的问题,但他们没有回答这个用例.
基本上,我是在一个给定的坐标(x,y)上叠加一些文本(文本)我在包中有以下功能;
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);
System.err.println(this.text+this.x+this.y);
return image;
}
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了一些显而易见的东西; 我可以找到的每一个对Graphics2D的引用都是处理游戏或直接写入文件,但我只想要返回一个BufferedImage.覆盖'渲染'
在当前代码中,图像显示为未更改.
谢谢!
我正在尝试调整缓冲图像的大小.我能够存储它并显示在一个jframe没有问题,但我似乎无法调整大小.有关如何更改此功能以使其工作并将图像显示为200*200文件的任何提示都会很棒
private void profPic(){
String path = factory.getString("bottle");
BufferedImage img = ImageIO.read(new File(path));
}
public static BufferedImage resize(BufferedImage img, int newW, int newH) {
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = new BufferedImage(newW, newH, img.getType());
Graphics2D g = dimg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
g.dispose();
return dimg;
}
Run Code Online (Sandbox Code Playgroud) 好的,所以我一直在尝试使用以下代码加载BufferedImage:
URL url = this.getClass().getResource("test.png");
BufferedImage img = (BufferedImage) Toolkit.getDefaultToolkit().getImage(url);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,这给了我一个类型转换错误,那么如何正确加载BufferedImage?
我试图理解下面的代码,其中b给定的整数image是一个图像.
据我所知,如果给定点i,j的RGB值大于b,则将该像素设置为白色,否则设置为黑色.所以会将图像转换为黑白图像.
但是我迷失了什么(&0xff)实际上,我猜它是一种二元转换?
if ((image.getRGB(i, j) & 0xff) > b) {
image.setRGB(i, j, 0xffffff) ;
} else {
image.setRGB(i, j, 0x000000);
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有透明度的PNG文件,它被加载并存储在一个BufferedImage.我需要这BufferedImage是的TYPE_INT_ARGB.但是,当我使用getType()返回值时,0(TYPE_CUSTOM)而不是2(TYPE_INT_ARGB).
这是我加载的方式.png:
public File img = new File("imagen.png");
public BufferedImage buffImg =
new BufferedImage(240, 240, BufferedImage.TYPE_INT_ARGB);
try {
buffImg = ImageIO.read(img );
}
catch (IOException e) { }
System.out.Println(buffImg.getType()); //Prints 0 instead of 2
Run Code Online (Sandbox Code Playgroud)
如何加载.png,保存BufferedImage并制作TYPE_INT_ARGB?
我使用此方法获取图像中像素的整数值:
int colour = img.getRGB(x, y);
Run Code Online (Sandbox Code Playgroud)
然后我打印出值,我看到黑色像素对应的值如"-16777216",一种蓝色的像"-16755216"等等.有人可以解释一下这个值背后的逻辑吗?
如何在OpenCV中将BufferedImage转换为Mat?我使用java包装器的OpenCV(而不是JavaCV).由于我是OpenCV的新手,我在理解Mat的工作方式时遇到了一些问题.
我想做这样的事情.(根据Ted W.回复):
BufferedImage image = ImageIO.read(b.getClass().getResource("Lena.png"));
int rows = image.getWidth();
int cols = image.getHeight();
int type = CvType.CV_16UC1;
Mat newMat = new Mat(rows,cols,type);
for(int r=0; r<rows; r++){
for(int c=0; c<cols; c++){
newMat.put(r, c, image.getRGB(r, c));
}
}
Highgui.imwrite("Lena_copy.png",newMat);
Run Code Online (Sandbox Code Playgroud)
这不起作用."Lena_copy.png"只是一张尺寸正确的黑色照片.
在我的Web应用程序中,我有一个图像上传模块.我想检查上传的文件,无论是图像文件还是任何其他文件.我在服务器端使用Java.
图像BufferedImage在java中读取,然后我将其写入磁盘ImageIO.write()
我该如何检查BufferedImage,无论是真的是图像还是其他什么?
任何建议或链接将不胜感激.
是的,我是那么傻.我试图从各种食谱配方中将一些groovy代码粘在一起,我无法从Java/Groovy中的InputStream到BufferedImage.谷歌目前不是我的朋友.
一种尝试的方法是使用TexturePaint和g.fillRect()绘制图像.然而,这需要您在每次绘制图像时创建一个新的TexturePaint和Rectangle2D对象,这是不理想的 - 并且无论如何都没有帮助.
当我使用时g.drawImage(BufferedImage,...),旋转的图像看起来模糊/柔和.
我熟悉RenderingHints和双缓冲(我认为这就是我正在做的事情),我发现很难相信你不能轻易有效地在Java中旋转产生尖锐结果的图像.
使用代码TexturePaint看起来像这样.
Grahics2D g2d = (Graphics2D)g;
g2d.setPaint(new TexturePaint(bufferedImage, new Rectangle2D.Float(0,0,50,50)));
g2d.fillRect(0,0,50,50);
Run Code Online (Sandbox Code Playgroud)
我正在用AffineTransform一把牌旋转成一个风扇.什么是快速绘制好看图像的最佳方法?
这是一个截图:
9是清脆的,但其余的卡肯定不那么尖锐.
问题可能出在我创建每张卡片图像并将其存储在数组中时.
这就是我现在正在做的事情:
// i from 0 to 52, card codes.
...
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
BufferedImage img = gc.createCompatibleImage(86, 126, Transparency.TRANSLUCENT);
Graphics2D g = img.createGraphics();
setRenderingHints(g);
g.drawImage(shadow, 0, 0, 86, 126, null);
g.drawImage(white, 3, 3, 80, 120, null);
g.drawImage(suit, 3, 3, 80, …Run Code Online (Sandbox Code Playgroud) bufferedimage ×10
java ×10
image ×3
argb ×1
colors ×1
file-upload ×1
graphics2d ×1
groovy ×1
inputstream ×1
loading ×1
mat ×1
opencv ×1
rgb ×1
servlets ×1
transform ×1