如何在Java图形缩放期间存储临时bufferedImage

时间:2012-10-26 07:28:25

标签: java swing graphics2d

我想使用渐进式双三次方法将大型1920x1080缓冲图像缩放为更小的200x200尺寸。 我从1024x768开始并缩小到原始的近80%然后想要以某种格式存储这个临时图像,以便在下一次迭代中我再次执行此图像上的缩放到80%并继续该过程直到我获得200x200我最终在JFrame上显示的图像。

什么是存储这种温度图像的方法或方法?或者任何人都可以采用一种简单的方法来实施这种逐步的双点缩放。

预期的代码看起来与此类似(虽然需要进行各种修改,我只需要存储临时图像的方式)

int sizew=1920,sizeh=1080;
    int deltaw = (int)(0.20 *1920);
    int deltah= (int)(0.20*1920);
    while(sizew>200&&sizeh>200)
    {
        sizew=sizew-deltaw;
        sizeh=sizeh-deltah;
        if(sizew<200||sizeh<200)
        {
            sizew=200;
            sizeh=200;
            temp=new BufferedImage(sizew,sizeh,BufferedImage.TYPE_INT_RGB);
                    //but using this how would i give reference to my original 1920x1080 image or temp image???
            break;
        }
        else
            temp=new BufferedImage(sizew,sizeh,BufferedImage.TYPE_INT_RGB);
    }    

1 个答案:

答案 0 :(得分:1)

不容易的任务;这是蛮力方法的概述:

使用适合源的可用方法将图像平铺为可管理的部分,例如

  • Java getSubImage(),见here
  • Ossim,专为大地测量数据而设计,但可用于图像。

按照预期用途保证对瓷砖进行重新取样,例如

  • AffineTransform,见here,使用TYPE_NEAREST_NEIGHBOR
  • ImageJ,可能是scripted

重新组装瓷砖;方法取决于目的地。