Показать полную графическую версию : txt to jpg
Подскажите пожалуйста, есть желающие помочь (можно не бесплатно) написать простейшую программу, которая брала бы текст из txt файла (или файлов) и вставляла бы его(их) в картинку с белым фоном с таким же названием.jpg. При этом я должен задавать ширину изображения, а высота делается исходя из объема текста.
Все это делает простейшая заброшенная программа http://explayt7.ucoz.ru/news/2009-05-31-5, однако она нарезает текст исключительно в картинки 320х240 и изменить это нельзя.
Foreigner
26-01-2015, 02:01
XXXp, nconvert может вставлять текст:
:: Новый файл new.jpg
nconvert -new 300 100 -o
:: Текст в одну строчку
nconvert -text "test test test" -text_color 0 0 0 -text_back 255 255 255 -text_flag center-left -text_font Consolas 10 -o test.jpg new.jpg
Для многострочного наверное надо рассчитывать позицию текста для каждой строки исходя из размера шрифта.
nconvert -help | more
nconvert -help > help.txt
Батник наверное написать не сложно. Но не сейчас.
XXXp, каким образом планируете указывать размер?
Посредством ImageMagic:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=%~1
if defined sSourceFile (
if exist "%sSourceFile%" (
set sDestFile=%~dpn1.jpg
"%ProgramFiles%\ImageMagick-6.8.0-Q16\convert.exe" ^
-background white ^
-fill blue ^
-font Arial ^
-pointsize 24 ^
-size 480x ^
-gravity Center ^
caption:"@%sSourceFile%" ^
"!sDestFile!"
) else (
echo Can't find source text file [%sSourceFile%].
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source text file^>
exit /b 1
)
endlocal
exit /b 0
Исходный файл указывается аргументом пакетного файла.
Исходный файл должен быть в кодировке UTF-8 без BOM, последняя строка не должна содержать символов завершения строки.
Ширина создаваемого изображения задаётся аргументом «-size» (в примере — 480 пикселей).
http://i.imgur.com/WZFDXti.jpg
2Iska
Спасибо, я только не понял как указывать исходный файл, что значит "Исходный файл указывается аргументом пакетного файла"?
XXXp, можете просто перетащить в Проводнике искомый текстовый файл на пакетный файл/ярлык к пакетному файлу.
И что насчёт:
XXXp, каким образом планируете указывать размер? »
?
2Iska
Так Вы же указали, в настройках скрипта 480 пикселей где стоит, тут и буду!
Спасибо!
Подскажите только, а как кроме перетаскивания можно указывать файл?
Можно так же попробовать воспользоваться готовыми утилитами:
http://explayt7.ucoz.ru/load/chtenie_teksta/txt_to_jpg/14-1-0-8
Или онлайн конвертерами:
http://www.txt2jpg.com
http://image.online-convert.com/ru/convert-to-jpg
http://online-convert.ru/convert_document_to_txt.html
2pzh2393 спасибо
Готовую утилиту я приводил в стартовом посте, там есть проблема, что все изображения имеют размер 320х240
А онлайн не подойдет, мне 100 файлов за раз нужно делать, хотелось бы это реализовывать пакетно. Тем более, что вариант Iska очень хорошо работает и настраивается!
Так Вы же указали, в настройках скрипта 480 пикселей где стоит, тут и буду! »
Ясно. Раз устраивает, пусть так и остаётся.
Подскажите только, а как кроме перетаскивания можно указывать файл? »
В командной строке аргументом пакетного файла:
http://i.imgur.com/is9FRCX.png
Когда Вы делаете:
можете просто перетащить в Проводнике искомый текстовый файл на пакетный файл/ярлык к пакетному файлу. »
«за кадром» происходит то же самое.
100 файлов за раз нужно делать, хотелось бы это реализовывать пакетно. »
ширина изображений для всех 100 будет одинакова?
ширина изображений для всех 100 будет одинакова? »
Да, ширину достаточно мне один раз задать, дальше по размеру текста уже только высота меняется
Спасибо!
Да, ширину достаточно мне один раз задать, дальше по размеру текста уже только высота меняется »
Ну тогда просто пишете ещё один пакетный файл, в котором будут 100 строк вида:
C:\Песочница\062\0001.cmd "C:\Песочница\062\Sample text1.txt"
C:\Песочница\062\0001.cmd "C:\Песочница\062\Sample text2.txt"
C:\Песочница\062\0001.cmd "C:\Песочница\062\Sample text3.txt"
и исполняете его. Если имена текстовых файлов подчиняются каким-то правилам или находятся в отдельной папке, то можно будет вместо 100 однотипных строк использовать получение имён файлов по «dir *.txt», последующий разбор по «for /f» и вызов.
Ну тогда просто пишете ещё один пакетный файл, в котором будут 100 строк вида: »
А возможно сделать такой код, чтобы все подпапки для "C:\Песочница\" и соответственно все файлы тхт в этих подпапках обрабатывались? Чтобы картинки сохранялись в соответствующей папке с соответствующим названием?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.