BrantleyOng Ответов: 1

Как создать цветную фотографию преобразовать в оттенки серого и сохранить с помощью java


я не знаю, где мой код сделал неправильно, проблема не в том, чтобы сохранить . пожалуйста помогите

Что я уже пробовал:

import java.io.*;

public class GrayScaleConverter {
	
	public ImageResource makeGray(ImageResource inImage) {
		ImageResource outImage = new ImageResource(inImage.getWidth(), inImage.getHeight());
		
		for (Pixel pixel: outImage.pixels()) {
			Pixel inPixel = inImage.getPixel(pixel.getX(), pixel.getY());
			int average = (inPixel.getRed() + inPixel.getBlue() + inPixel.getGreen())/3;
			pixel.setRed(average);
			pixel.setGreen(average);
			pixel.setBlue(average);
		}
		
		return outImage;
	}

	public void selectAndConvert () {
		DirectoryResource dr = new DirectoryResource();
		for (File f : dr.selectedFiles()) {
			ImageResource inImage = new ImageResource(f);
			ImageResource gray = makeGray(inImage);
			String fname = gray.getFileName();
			String newName = "copy-" + fname;
			gray.setFileName(newName);
			gray.draw();
			gray.save();
		}
	}
}

wseng

не откладывать же куда?

BrantleyOng

гв пусть возвращают выходные данные сохранить в мой локальный файл?

1 Ответов

Рейтинг:
0

Jochen Arndt

Ваш ImageResource вернулся из makeGray() не имеет имени файла, так как он был создан в памяти и setFileName() не было призвано к этому.

Вместо этого используйте имя входного файла:

gray.setFileName(f.getParent() + f.pathSeperator + "copy-" + f.GetName());
Если вам нужно сохранить файл в другом каталоге используйте его вместо f.getParent().