相关疑难解决方法(0)

使用ImageIO.write jpg文件的问题:粉红色的背景

我正在使用以下代码编写jpg文件:

String url="http://img01.taobaocdn.com/imgextra/i1/449400070/T2hbVwXj0XXXXXXXXX_!!449400070.jpg";
String to="D:/temp/result.jpg";
ImageIO.write(ImageIO.read(new URL(url)),"jpg", new File(to));
Run Code Online (Sandbox Code Playgroud)

但我得到的result.jpg是一个粉红色的背景图片:

替代文字

java image-processing

48
推荐指数
3
解决办法
5万
查看次数

int数组到BufferedImage

我正在使用Robot类打印屏幕,我将BufferedImage转换为int数组.然后我想将int数组转换回bufferedimage,但这会产生错误.这是我的代码:

Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
BufferedImage printscreen = robot.createScreenCapture(new Rectangle(screen));
int[] pixels = ((DataBufferInt) printscreen.getRaster().getDataBuffer()).getData();

BufferedImage image = new BufferedImage(screen.width, screen.height, BufferedImage.TYPE_INT_RGB);
WritableRaster raster = (WritableRaster) image.getRaster();
raster.setPixels(0, 0, screen.width, screen.height, pixels);
Run Code Online (Sandbox Code Playgroud)

但我得到错误:ArrayIndexOutOfBoundsException: 2073600但为什么?

我在这一行得到了例外:

raster.setPixels(0, 0, screen.width, screen.height, pixels);
Run Code Online (Sandbox Code Playgroud)

编辑:如果我将第二个bufferedimage类型更改为TYPE_BYTE_GRAY,它正在工作.

java bufferedimage pixels

5
推荐指数
2
解决办法
8991
查看次数

标签 统计

java ×2

bufferedimage ×1

image-processing ×1

pixels ×1