Увеличение изображения Java - PullRequest
0 голосов
/ 21 февраля 2012

Мне нужна помощь в моем коде.

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 голосов
/ 21 февраля 2012

Вы можете "привести" значения с плавающей запятой к целым, как это:

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

Кастинг отбрасывает дробную часть числа, поэтому 21,7 становится 21.

...