首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像编辑中的ArrayOutOfBoundsException

图像编辑中的ArrayOutOfBoundsException
EN

Stack Overflow用户
提问于 2013-05-20 08:05:13
回答 1查看 48关注 0票数 0

我试着做一个功能,水平翻转给定的图像。如您所知,使用PImage类型进行处理。

我想要的是:

代码语言:javascript
复制
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专用程序员:

  • createImagenew PImage的“替代品”;
  • loadPixels()updatePixels()是你不需要说的吗?加载和更新图像或帧的像素;
  • 我需要创建一个新的PImage,原因有两个: 1)语法意义;2)语义意义:如果我开始修改它的一部分=P,我就不能复制整个图像。

伙计们,我试过的是:

  • (i * width)采取相同的路线;
  • 从底部到达,toReturn中线路的起始位置;
  • toReverse线路的起始位置到达底部;

我拥有的是一个ArrayOutOfBoundsException: 1499

我犯了个错误但是..。哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 08:14:54

你的公式似乎在手提箱里是对的。但是唯一能导致这里提到的异常的是未知(对我们)变量width。看起来,这个变量与对象toReverse及其维度无关。我敢肯定,你必须这样解决它:

代码语言:javascript
复制
toReturn.pixels[(i * toReverse.width) + (toReverse.width - 1 - j)] = toReverse.pixels[(i * toReverse.width) + j];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16645115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档