亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何實現陣列對稱的兩列交換?

如何實現陣列對稱的兩列交換?

一只名叫tom的貓 2022-09-28 14:44:15
我們將圖像表示為二維數組。如果要實現圖像的垂直鏡像,我們需要對稱交換二維數組的列。但是在教師的代碼中,為什么交換數組的行?結果是正確的。    private void mirror() {        // TODO        for(int i = 0; i < dimX()/2; i++) {            int[] col = pixels[i];                               pixels[i] = pixels[dimX()-i-1];            pixels[dimX()-i-1] = col;        }    }所有代碼:package ubung;import java.awt.image.*;import java.io.*;import javax.imageio.*;import java.util.Random;import java.util.Arrays;/** * Die Klasse Bildbearbeitung laedt eine Bilddatei und fuehrt  * abhaengig von gewaehlten Optionen eine Reihe von  * Bildmanipulationen aus.  */public class Bildbearbeitung {    private int[][] pixels;    /**     * Konstruktor fuer die Klasse Bildbearbeitung, die eine Bilddatei einliest     * und das zweidimensionale Pixel-Array pixels befuellt.     * @param file Einzulesende Bilddatei     */    private Bildbearbeitung(String file) {        try {            BufferedImage img = ImageIO.read(new File(file));            pixels = new int[img.getWidth()][img.getHeight()];            for(int i = 0; i < dimX(); i++)                for(int j = 0; j < dimY(); j++)                    pixels[i][j] = img.getRGB(i, j);        } catch (IOException e) {}    }       private int dimX(){        return pixels.length;    }    private int dimY(){        if(dimX() == 0)            return 0;        return pixels[0].length;    }    /**      * Diese Funktion schreibt den Inhalt des Pixelarrays in die     * Datei 'ausgabe.png'. Falls diese Datei nicht vorhanden ist,      * wird sie angelegt. Eine vorhandene Datei wird eventuell ueberschrieben!     */    private void save(String option){        BufferedImage img = new BufferedImage(dimX(), dimY(), 3);        for(int i = 0; i < dimX(); i++)            for(int j = 0; j < dimY(); j++)                img.setRGB(i, j, pixels[i][j]);        try {            File outputfile = new File("ausgabe-" + option + ".png");            ImageIO.write(img, "png", outputfile);        } catch (Exception e) {}    }
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

它不是交換行;查看像素的聲明: 像素 = 新的整數[img.getWidth()];

寬度 / X 值是第一個 [],表示整個列。

將切換它的部分與初始化它的部分進行比較。


查看完整回答
反對 回復 2022-09-28
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號