gpt4 book ai didi

java - 图片旋转90度说明

转载 作者:行者123 更新时间:2023-11-30 07:47:59 28 4
gpt4 key购买 nike

因此,我通过使用我的 180 度代码并基本上搞乱了,设法让图像旋转 90 度,但我仍然对代码的实际作用和实现方式感到非常困惑。我理解 180 度旋转,但不理解下面代码的 90 度旋转。谁能给我解释一下?

OFImage image1 = new OFImage(image);

for (int x = 0; x < image.getWidth(); ++x) {
for (int y = 0; y < image.getHeight(); ++y) {
image.setPixel(y, x, image1.getPixel(image.getWidth() - x - 1, y));

最佳答案

我已经评论了你的代码

OFImage image1 = new OFImage(image); // create a copy of `image`

for (int x = 0; x < image.getWidth(); ++x) { // loop through each column of pixels in original presumably from left to right
for (int y = 0; y < image.getHeight(); ++y) { // loop through each cell of the column presumably from top to bottom
image.setPixel(y, x, image1.getPixel(image.getWidth() - x - 1, y)); // here you have swapped the x and y coordinates and you are putting in the pixel from the copy that is at width - x - 1, y

因此,当 x = 0(列)和 y = 0(行)时,您将 (W= image.width - 1, y)(第一行的最后一个像素)中的像素副本放入 (0 ,0) 所以 (W,0) => (0,0)然后当 x = 0 且 y = 1 时 (W, 1) => (1, 0),则 (W, 2) => (2, 0)

在循环开始时,您从最右边的列开始读取,然后写入最上面的行。

关于java - 图片旋转90度说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com