Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 генерация qr кода  [new]
neteurt
Member

Откуда:
Сообщений: 142
Использую этот код для генерации QR кода.
путь сохранения картинку указан в переменной String filePat. Вот как мне сохранять картинку внутрь проекта, чтобы при перемещение самой папки, из одного места в другую картинка сохранялась в корень проекта.
    public void qrCode(String urlqrcode) {
            try {
                // Считываем json
                Object obj = new JSONParser().parse(urlqrcode); // Object obj = new JSONParser().parse(new FileReader("JSONExample.json"));
                // Кастим obj в JSONObject
                JSONObject jo = (JSONObject) obj;
                // Достаём firstName and lastName
                String erip_link = (String) jo.get("erip_link"); 
                
                String qrCodeData = erip_link;
                String filePath = "D:\\soft\\chillyfacts.png";
                String charset = "UTF-8"; // or "ISO-8859-1"
                Map < EncodeHintType, ErrorCorrectionLevel > hintMap = new HashMap < EncodeHintType, ErrorCorrectionLevel > ();
                hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
                BitMatrix matrix = new MultiFormatWriter().encode(
                    new String(qrCodeData.getBytes(charset), charset),
                    BarcodeFormat.QR_CODE, 200, 200, hintMap);
                MatrixToImageWriter.writeToFile(matrix, filePath.substring(filePath
                    .lastIndexOf('.') + 1), new File(filePath));
                System.out.println("QR Code image created successfully!");
            } catch (Exception e) {
                System.err.println(e);
            }
        } 
27 окт 20, 11:40    [22221312]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
neteurt
Member

Откуда:
Сообщений: 142
сам проект имеет структуру

К сообщению приложен файл. Размер - 76Kb
27 окт 20, 11:44    [22221318]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
Garrick
Member

Откуда: Москва
Сообщений: 3067
neteurt,

String filePath = "chillyfacts.png";

Пробовали?
27 окт 20, 14:40    [22221453]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
neteurt
Member

Откуда:
Сообщений: 142
Garrick,
не помогло, не понятно куда картинка сохранилась. А можно это картинку сохранить в переменную, чтобы потом ее вывести на экран?
27 окт 20, 17:59    [22221609]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
Zzz79
Member

Откуда:
Сообщений: 1005
neteurt
Garrick,
не помогло, не понятно куда картинка сохранилась. А можно это картинку сохранить в переменную, чтобы потом ее вывести на экран?

можно конечно
BufferedImage в помощь
27 окт 20, 18:10    [22221619]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18324
neteurt
не понятно куда картинка сохранилась
задать имя позаковырестей и поиском его найти
27 окт 20, 18:15    [22221625]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
neteurt
Garrick,
не помогло, не понятно куда картинка сохранилась. А можно это картинку сохранить в переменную, чтобы потом ее вывести на экран?

Картинка сохранилась в user.dir каталог текущего java процесса. Где этот user.dir находится
зависит от среды или сборщика. Может быть /tagret, /build или еще где-то куда упал артифакт
или где лежит просто сет классов *.class вашего проекта.

Не ждите милостей от форума. Никто на самом деле не знает. Но вы можете в рантайме посмотреть
это значение "user.dir" через System.getProp()
27 окт 20, 21:06    [22221743]     Ответить | Цитировать Сообщить модератору
 Re: генерация qr кода  [new]
Garrick
Member

Откуда: Москва
Сообщений: 3067
neteurt
Garrick,
не помогло, не понятно куда картинка сохранилась. А можно это картинку сохранить в переменную, чтобы потом ее вывести на экран?

System.out.println(new File(".").getAbsolutePath());

Вместо String filePath используйте java.io.File тогда вы всегда сможете "прочесть" полный путь к этому фалу.
Правильнее было бы использовать System.getProperty("user.dir") - это имя домашней папки пользователя, туда всегда точно есть доступ.
File file = new File(System.getProperty("user.dir") + "/chillyfacts.png");

Или использовать временные файлы
File tempFile = File.createTempFile("prefix-", ".png");
tempFile.deleteOnExit();

Также вы можете сделать файл properties, записать туда имя каталога в котором хотите сохранять ваши файлы и использовать это. java.util.Properties В Интернете полно инфы на любом языке о том как этим пользоваться.
28 окт 20, 11:17    [22222033]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить