Доброго времени суток)
Нужно загрузить 6 изображений и передать их в цикл. Для загрузки используется класс LoadImage.
public class Main
{
public static void main(String args[]) throws IOException
{
IRExamenator examenator = new IRExamenator();
//тут надо считать картинки и передать их в цикл ниже
for (String path : args)
{
}
Класс для загрузки изображений.
public class LoadImage {
public static BufferedImage image(String path) throws Exception{
return ImageIO.read(new File(path));
}
}
То как загрузить изображение я примерно понимаю
BufferedImage img = LoadImage.image("Images\\1.bmp");
Но как потом их передать в этот массив args
нет((
Подскажите пожалуйста.
Редактирую:
public class Main
{
public static void main(String args[]) throws IOException //too many code under try-catch for non-handling situation (always exit on exception)
{
IRExamenator examenator = new IRExamenator();
//тут надо считать картинки и передать их в цикл ниже
String[] path = {
"etalons/etalon-forest-1.png",
"etalons/etalon-forest-2.png",
"etalons/etalon-ground-1.png",
"etalons/etalon-ground-2.png",
"etalons/etalon-water-1.png",
"etalons/etalon-water-2.png"
};
BufferedImage[] images = new BufferedImage[path.length];
for (int i = 0; i < path.length; i++) {
images[i] = ImageIO.read(new File(path[i]));
}
for (String path : images)
{
int[][] mas = IRUtil.imageToMatrix(IRUtil.loadImage(path)); // лоадИмейдж принимает путь к картинке
}
Я вижу два варианта:
Вы знаете пути всех шести изображений на этапе компиляции. Тогда просто вызываете метод ImageIO.read
для каждого пути, получаете массив изображений, что с ними дальше делать уже вам решать.
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String[] pathes = {
"path1/image1.png",
"path2/image2.jpg",
...
};
BufferedImage[] images = new BufferedImage[pathes.length];
for (int i = 0; i < pathes.length; i++) {
images[i] = ImageIO.read(new File(pathes[i]));
}
// далее делаете с массивом images что хотите
}
}
На этапе компиляции пути изображений неизвестны. Можно считывать их из стандартного входа, либо надеяться что пользователь передаст их аргументами командной строки, и они окажутся в массиве args
(Это аргумент метода main
). Тогда надо в предыдущем решении изменить инициализацию переменной pathes
:
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String[] pathes = args;
BufferedImage[] images = new BufferedImage[pathes.length];
for (int i = 0; i < pathes.length; i++) {
images[i] = ImageIO.read(new File(pathes[i]));
}
// далее делаете с массивом images что хотите
}
}
Замечание: в коде выше не используется класс LoadImage
, мне кажется, что он бесполезен, по сути он является обёрткой над методом ImageIO.read
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не могу создать VPN подключениеЕсть адрес сервера через который нужно создать подключение
Не могу понять как это вылечить, поиски в гугл не увенчались успехомПишут нужно запускать от админа удалить обновления список перечисляют
Есть fragment на ней два AutoCompleteTextView и Button, у меня AutoCompleteTextView заполнен из текстовых ресурсов, но для примера я напишу так допустим он заполнен массивом...