Github
Возможно, это тот случай, когда все по своей сути сложно, но я столкнулся с препятствием. Я работаю над простым конвертером изображения в ASCII, и вместо записи в консоль я хотел бы создать новое изображение с символами ASCII.
Я пробовал использовать графический интерфейс для буферизованного изображения, но у него нет встроенного способа обработки символов новой строки, и мне кажется, что справиться с этим форматированием самостоятельно не так просто. Есть ли простой способ сделать это? Вот фрагмент незавершенного метода compressBrightness() просто преобразует значения RGB в оттенки серого и сжимает до диапазона из 70 значений, поскольку именно такое количество символов у меня есть для преобразования.
private static BufferedImage toASCII(BufferedImage image){
int[] brightnessVals = CompressBrightness(image);
String pixelsAsASCII = "";
for (int i = 0; i < brightnessVals.length; i++) {
int pixelBrightness = brightnessVals &0xff;
pixelsAsASCII += gradient[pixelBrightness];
if(i % image.getWidth() == 0 && i != 0){
pixelsAsASCII += "\n";
}
}
if(DEBUG){
System.out.println(pixelsAsASCII);
}
BufferedImage ASCIIImage = new BufferedImage(image.getWidth() * 8, image.getHeight() * 21, image.getType());
Graphics AASCIRenderer = ASCIIImage.getGraphics();
Font renderFont = new Font("Monospaced", Font.PLAIN,12);
AASCIRenderer.setFont(renderFont);
AASCIRenderer.setColor(Color.WHITE);
AASCIRenderer.drawString(pixelsAsASCII)
Подробнее здесь: https://stackoverflow.com/questions/798 ... ge-in-java
Рендеринг текста в изображение в Java ⇐ JAVA
Программисты JAVA общаются здесь
1764144927
Anonymous
Github
Возможно, это тот случай, когда все по своей сути сложно, но я столкнулся с препятствием. Я работаю над простым конвертером изображения в ASCII, и вместо записи в консоль я хотел бы создать новое изображение с символами ASCII.
Я пробовал использовать графический интерфейс для буферизованного изображения, но у него нет встроенного способа обработки символов новой строки, и мне кажется, что справиться с этим форматированием самостоятельно не так просто. Есть ли простой способ сделать это? Вот фрагмент незавершенного метода compressBrightness() просто преобразует значения RGB в оттенки серого и сжимает до диапазона из 70 значений, поскольку именно такое количество символов у меня есть для преобразования.
private static BufferedImage toASCII(BufferedImage image){
int[] brightnessVals = CompressBrightness(image);
String pixelsAsASCII = "";
for (int i = 0; i < brightnessVals.length; i++) {
int pixelBrightness = brightnessVals[i] &0xff;
pixelsAsASCII += gradient[pixelBrightness];
if(i % image.getWidth() == 0 && i != 0){
pixelsAsASCII += "\n";
}
}
if(DEBUG){
System.out.println(pixelsAsASCII);
}
BufferedImage ASCIIImage = new BufferedImage(image.getWidth() * 8, image.getHeight() * 21, image.getType());
Graphics AASCIRenderer = ASCIIImage.getGraphics();
Font renderFont = new Font("Monospaced", Font.PLAIN,12);
AASCIRenderer.setFont(renderFont);
AASCIRenderer.setColor(Color.WHITE);
AASCIRenderer.drawString(pixelsAsASCII)
Подробнее здесь: [url]https://stackoverflow.com/questions/79830290/rendering-text-to-an-image-in-java[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия