2012-02-21 62 views
0

我在代码中需要帮助。Java image 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倍或更多倍。对不起,我的英语不好。

+0

*“对不起,我的英语不好“*我会忽视糟糕的英语,但不会懒惰。为了方便读者,请使用大写字母:1)每个句子的第一个字母2)关于'I'3的单词)适当的名称,如英语(或类名等)。 – 2012-02-21 18:26:55

回答

0

你可以在“投”浮点值整数这样的:

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

铸造丢弃数的小数部分,使像21.7变为21