反映线上的像素

时间:2017-02-08 17:07:29

标签: java image rgb

目的是'移动'' (一些)图像的方形子区域(正方形(x,y))中的像素。

我这样做是通过遍历该广场的每条水平线并计算出哪些将被移动。所以以相反的方式移动它们。

鉴于我的方块(x,y)中有一条水平像素线

一个..............乙.........ç

应用变换后,B到C之后的像素将变黑。 C&C 39处的像素移动'到A,B和P之间的像素被移动并从A到B线性缩放。

这意味着A到B像素是B到C的拉伸反射。但B处的像素保持不变。

我的问题是找出A和C的位置,它们是方形的右手侧和左手侧(x,y)。

到目前为止,我有这个:大小是长度的一半或方形的宽度

// check if square(x,y) lies within image
if ( (x<image.getWidth()) && (y<image.getHeight()) ){   
   if (( y<=0) && (y >= image.getHeight())){ //not sure whether these if's are right
      for (int i=0; i<x-size; i++) {// visiting each pixel in square(x,y) at coordinate (i,j) 
         for(int j=0; j< y-size; j++){ 
           // set values for A(left hand side), C(right hand side), B(x +n)
            int A= 
            int B= 
            int B= x+n;

1 个答案:

答案 0 :(得分:1)

根据我的理解,你在一个更大的图像里面有一个小的方形区域,但是你在整个图像中运行“for循环”而不是正方形(我假设它是从一些键盘在屏幕上移动)命令或鼠标移动)。

在鼠标移动的情况下,鼠标将在正方形的中心位置(x,y)。在正方形的每个水平像素行中,你的A将是(x - (square.width / 2)),你的B将是(x + n),你的C将是(x +(square.width / 2) )。