Java 确定图像及其一部分的长度

Java 确定图像及其一部分的长度,java,image,bufferedimage,string-length,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.get

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

图像区域的一部分:

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);
整个图像:

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


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

如果您已经检查了java文档 它表示getSubimage方法与原始图像共享相同的数据数组。
这就是为什么数据数组的长度是相同的

图像的长度是多少?这里是字节数组的长度。不是实际图像。您应该使用imageLocation.getWidth()和imageLocation.getHeight()。
获取字节数据的定义是什么?
?如果您想以特定格式(比如JPEG)获取图像部分的字节大小,您需要创建一个新位图,复制所需的内容(图像部分)然后将其作为字节流存储在MemeoryStream对象中,然后获取长度。如果这真是你的问题对不起,我的英语很差。它应该得到图像字节数组的长度。谢谢Srinath。但我有一个问题,因为我想在这个区域的这一部分放一条信息,所以我需要知道这个区域的确切位置<代码>专用字节[]获取字节数据(BuffereImage){WritableRaster raster=image.getRaster();在这张图片中,这里是原始图片??或图片的一部分???@JarekHuang,如果你只需要在原始图片上打印一些文字,这会更容易。检查这个问题的答案。实际上,我正试图将不可见的信息放入图片中,但我想将其放入图片的不同部分。这是我要问的一个链接[链接]因为我需要知道x-指定矩形区域左上角的x坐标y-指定矩形区域左上角的y坐标w-指定矩形区域的宽度h-指定矩形区域的高度(如果我只使用
imageLocation.getWidth()和imageLocation.getHeight()
,它将没有我想要的矩形区域。@JarekHuang我认为您混淆了隐写术概念和Java图像处理。我将回答您关于隐写术的另一个问题,因为它与这个问题没有直接关系。