确定图像的长度和图像的一部分

时间:2014-01-15 04:03:01

标签: java image bufferedimage string-length

我试图获取图像的长度以及图像的一部分的长度,但两者都给出了相同的结果。我哪里出错了?

部分图像区域:

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

1 个答案:

答案 0 :(得分:0)

这里得到字节数组的长度。不是实际的图像。 您应该使用imageLocation.getWidth()imageLocation.getHeight()

如果您已查看过java doc http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html 它说getSubimage方法与原始图像共享相同的数据数组。 这就是为什么数据数组长度的长度相同。