我试图获取图像的长度以及图像的一部分的长度,但两者都给出了相同的结果。我哪里出错了?
部分图像区域:
private BufferedImage add_text(BufferedImage image, String text) {
BufferedImage imageLocation=image.getSubimage(image.getWidth()/2, image.getHeight()/2,
image.getWidth()-image.getWidth()/2, image.getHeight()-image.getHeight()/2);
byte img[] = get_byte_data(imageLocation);
System.out.println("Image length: "+img.length);
整个图片:
private BufferedImage add_text(BufferedImage image, String text) {
byte img[] = get_byte_data(image);
System.out.println("Image length: "+img.length);
两者的输出都是
图片长度:984900
答案 0 :(得分:0)
这里得到字节数组的长度。不是实际的图像。
您应该使用imageLocation.getWidth()
和imageLocation.getHeight()
。
如果您已查看过java doc http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html 它说getSubimage方法与原始图像共享相同的数据数组。 这就是为什么数据数组长度的长度相同。