Java图像缩放

时间:2012-02-21 16:41:25

标签: java image image-processing zoom

我的代码需要帮助。

int width = img.getXDim();
int height = img.getYDim();
int n = 3;

Image newImg = new ByteImage(width * n, height * n, 1);

        for(int x = 0; x < width; x++){
    for(int y = 0; y < height; y++){

    int p = img.getXYByte(x, y);

    newImg.setXYByte(n * x, n * y, p);
    newImg.setXYByte(n * x + 2, n * y, p);
    newImg.setXYByte(n * x, n * y + 2, p);
    newImg.setXYByte(n * x + 2, n * y + 2, p) ;  `

我的问题是,我想更改n值(为2,9或0.5),以便我可以放大或缩小我的图像。但是,当我为{十进制数字写float n时,setXYByte表示我只能使用int,int,int个值。使用此代码,我只能使我的图像大3倍或更多倍。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

您可以将浮点值“强制转换”为这样的整数:

newImg.setXYByte((int) (n * x), (int) (n * y), p);

投射会丢弃数字的小数部分,以便21.7之类的内容变为21。