在Java中缩放图像数组
我试图重新缩放一组图像,使它们具有相同的宽度和高度。我无法返回阵列。任何帮助都会很好在Java中缩放图像数组,java,image,scale,Java,Image,Scale,我试图重新缩放一组图像,使它们具有相同的宽度和高度。我无法返回阵列。任何帮助都会很好 public static Picture[] resize(Picture[] slides, String[] args) { int w = 298; int h = 298; Picture [] source = new Picture [Integer.parseInt(args[0])]; for ( int ti = 0; ti < w; ti
public static Picture[] resize(Picture[] slides, String[] args) {
int w = 298;
int h = 298;
Picture [] source = new Picture [Integer.parseInt(args[0])];
for ( int ti = 0; ti < w; ti++){
for (int tj = 0; tj < h; tj++){
Picture [] target = new Picture[ti+1];
int si = tj * source[ti].width()/w;
int sj = tj * source[tj].height()/h;
target[ti].set(ti, tj, source[0].get(si, sj));
}
}
return target;
}
公共静态图片[]调整大小(图片[]幻灯片,字符串[]参数){
int w=298;
int h=298;
Picture[]源=新图片[Integer.parseInt(args[0]);
对于(int ti=0;ti
您的问题有点不清楚,您的源代码令人困惑。似乎您只需要编辑传入的数组。您可以修改它,以便它复制输入数组并创建一个新数组,System.arraycopy()
将完成此操作
我试图回答我认为您需要的问题,但是我不知道您的图片类API。您可以像在示例中一样使用set(…)
,而不是我使用的API调用
public static Picture[] resize(Picture[] slides, String[] args) {
int w = 298;
int h = 298;
for(Picture i : slides) {
i.setHeight(h);
i.setWidth(w);
}
return slides;
}
名为
target
的图片数组
将仅存在于声明它的块的范围内。目标
数组可引用的范围由最内层for循环的开始和结束括号标记
为了能够在返回语句所在的行中引用target
,您需要在两个for循环之外声明它
至于代码的其余部分,正如其他人所指出的,不清楚发生了什么
幻灯片
参数未使用:如果未使用,请将其删除
args
参数名称不正确:重命名它以指示其内容
执行这些步骤将使我们更容易进一步帮助您。我不知道这段代码应该如何工作。为什么要创建一个图片数组,其中的元素数量与源图片中水平移动的像素数量相同?为什么您从不创建目标
图片
对象,并设置明显为空的目标[ti]
的像素?为什么您只访问source
的0
th元素?我认为您首先需要回到如何使用数组的基础上:(无论如何,投票结束,因为上面的代码示例几乎无法修复,而且问题中存在一个主要的XY问题。)