我正在尝试找出一些代码,通过更改每个像素的rgb值并将它们放入数组中来使图像水平翻转。我设法让这个工作垂直翻转图像,但我不能为我的生活让它水平工作。我无法弄清楚为什么我一直得到一个outOfBoundsException。值得注意的是,此代码适用于方形图像,但不适用于矩形。所以我的代码是
int width = selection.getWidth();
int height = selection.getHeight();
int rgb[][] = new int[height][width];
int rgb2[][] = new int[height][width];
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
rgb[i][j] = selection.getRGB(i, j);
rgb2[i][j] = selection.getRGB(i, j);
System.out.println(j);
}
}
通过读取小数组的值并测试此循环来调试它,我无法弄清楚发生了什么。我尝试手工制作一些值,看起来它应该逐行扫描,创建一个具有像素值的图像高度和宽度相同的二维数组。但是,它永远不会脱离内循环。内循环中的某些东西超出范围。
即使在做
for (int i = 0; i < rgb.length; i++) {
for (int j = 0; j < rgb[0].length; j++) {
rgb[i][j] = selection.getRGB(i, j);
rgbTwo[i][j] = selection.getRGB(i, j);
}
}
它仍然表示坐标超出范围。我无法弄清楚为什么它不适用于水平但它适用于垂直,它适用于正方形但不适用于矩形。我的垂直翻转适用于正方形和矩形。
答案 0 :(得分:0)
将<video id="video1" width="320" height="240" controls src="video1.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
替换为 <div id="container">
<input id="fileUpload" type="file" />
<br />
<div id="image-container"> </div>
</div>
$("#fileUpload").on('change', function() {
if (typeof(FileReader) == "undefined") {
alert("Your browser doesn't support HTML5, Please upgrade your browser");
} else {
var container = $("#image-container");
//remove all previous selected files
container.empty();
//create instance of FileReader
var reader = new FileReader();
reader.onload = function(e) {
$("<img />", {
// I want to add the syle here
"src": e.target.result
}).appendTo(container);
}
reader.readAsDataURL($(this)[0].files[0]);
}
});
。 x值位于y值之前。 (见here)