【问题标题】:How to store temporary bufferedImage during scaling in java graphics如何在Java图形中缩放期间存储临时bufferedImage
【发布时间】:2012-10-26 22:10:31
【问题描述】:

我想使用渐进式双三次方法将 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);
    }    

【问题讨论】:

  • 请不要对我们大喊大叫,我们(至少我们大多数人)不是盲人:-)
  • @kleopatra:先生,发生了什么事?我做错了吗?
  • 女士,全大写的句子很难读(相当于大喊大叫:-)

标签: java swing graphics2d


【解决方案1】:

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

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

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

根据预期用途对图块重新采样,例如

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

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

【讨论】:

    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多