这是我的计算机科学课程的一部分。其中一项任务是拍摄图像并进行反映。我已经初始化了一张名为image的图片。当我运行这种方法时,不是反映它反映的图像。
/**
* Removes invalid characters from an HTML string
*
* @param string $content
*
* @return string
*/
function sanitize_html($content) {
if (!$content) return '';
$invalid_characters = '/[^\x9\xa\x20-\xD7FF\xE000-\xFFFD]/';
return preg_replace($invalid_characters, '', $content);
}
答案 0 :(得分:0)
您必须交换相应的像素值。目前,您将覆盖图像的右半部分,然后将其像素值保存在参考中,以便将它们放在左半部分。
下面我说明了我的意思"交换"值而不是单向分配它们:
//Getting a pixel object for the given x and y value
Pixel pixelObj = image.getPixel(x, y);
Pixel oppositePixel = image.getPixel(image.getWidth()-x-1, y);
//Store the RGB values of the opposite pixel temporarily
int redValue = oppositePixel.getRed();
int greenValue = oppositePixel.getGreen();
int blueValue = oppositePixel.getBlue();
//This swaps the color values of the new pixel to the ones of the old pixel
oppositePixel.setRed(pixel0bj.getRed());
oppositePixel.setGreen(pixel0bj.getGreen());
oppositePixel.setBlue(pixel0bj.getBlue());
pixelObj.setRed(redValue);
pixelObj.setGreen(greenValue);
pixelObj.setBlue(blueValue);
如果您在每轮中双向交换像素,则从0
循环到image.getWidth() / 2
就足够了。
了解如何在ImageJ's ImageProcessor
class中完成此操作。
另一种解决方案是使用矩阵变换并在x方向上按-1缩放。有关使用scale
op进行Java中图像处理的更详细示例,请参阅ImageJ ImgLib2 library。