我试着做一个功能,水平翻转给定的图像。如您所知,使用PImage类型进行处理。
我想要的是:
PImage reverseHorOf(PImage toReverse){
PImage toReturn = createImage(toReverse.width, toReverse.height, ARGB);
toReturn.loadPixels();
toReverse.loadPixels();
for(int i = 0; i < toReverse.height; i ++)
for(int j = 0; j < toReverse.width; j ++)
toReturn.pixels[(i * width) + (width - 1 - j)] = toReverse.pixels[(i * width) + j];
toReverse.updatePixels();
toReturn.updatePixels();
return toReturn;
}@Java专用程序员:
createImage是new PImage的“替代品”;loadPixels()和updatePixels()是你不需要说的吗?加载和更新图像或帧的像素;PImage,原因有两个: 1)语法意义;2)语义意义:如果我开始修改它的一部分=P,我就不能复制整个图像。伙计们,我试过的是:
(i * width)采取相同的路线;toReturn中线路的起始位置;toReverse线路的起始位置到达底部;我拥有的是一个ArrayOutOfBoundsException: 1499。
我犯了个错误但是..。哪里?
发布于 2013-05-20 08:14:54
你的公式似乎在手提箱里是对的。但是唯一能导致这里提到的异常的是未知(对我们)变量width。看起来,这个变量与对象toReverse及其维度无关。我敢肯定,你必须这样解决它:
toReturn.pixels[(i * toReverse.width) + (toReverse.width - 1 - j)] = toReverse.pixels[(i * toReverse.width) + j];https://stackoverflow.com/questions/16645115
复制相似问题