【问题标题】:How to start a count in java from bottom-left corner?如何从左下角开始在java中计数?
【发布时间】:2014-07-26 20:10:30
【问题描述】:

我知道在java中左上角被认为是(0,0)坐标。我正在尝试计算文件的像素。文件像素的 (0,0) 坐标从左下角开始。屏幕的总面积为 1121x881。我需要按顺序计算像素,以便数据与坐标匹配。我想要的 1121x881 区域是 543x451。谁能帮我做这个?

【问题讨论】:

  • 我不明白你从哪里得到这些尺寸。为什么不按照您想要迭代的顺序迭代像素?
  • 所以文件像素从左下角到右上角是 0,0。在每个像素处都有一个我需要的特定值。但是java希望从左上角到右下角读取像素,对吧?
  • Java 不希望以任何顺序读取任何内容。您将告诉 Java 如何阅读它。

标签: java arrays counting grib


【解决方案1】:

编辑:看起来想要的效果是从左下角开始的 543,451?

在这种情况下:

w= //your desired width
h= //your desired height
for(int x=543; x<w+543; x++){
    for(y=(pic.height-451)+h; y<pic.height-h;y++){
       //count;
    }
}

此代码从左下角开始,向上移动 451,超过 543,并捕获您指定的部分的宽度和高度。


代替标准

for(int x=0; x<pic.width; x++){
    for(y=0; y<pic.height;y++){
       //count;
    }
}

为什么不试试

for(int x=0; x<pic.width; x++){
    for(y=pic.height; y>0;y--){
       //count;
    }
}

这将从左下角开始计数,然后向上,然后向左。通过更改循环的限制,您可以定义您想要的区域。

如果您想要一个 543x451 且左下角与原始图像相同的区域:

for(int x=0; x<543; x++){
    for(y=pic.height; y>451;y--){
       //count;
    }
}

【讨论】:

  • 所以如果总面积是1121x881,我想要的面积是543451到703591;所以: for(int x=543; x451; y--){ //count; } } ???
  • 哦,你没有提到你想要一个以 543,451 作为左下角的部分。这仍然有效。在 for 循环中,x = (your bottom left corner x) x&lt;(startx + width) x++ y = ((pic.height-desired bottom y)+height) y&lt;(pic.height-bottom y) y++
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 2011-09-15
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多