- -
txt to jpg
(
http://forum.oszone.net/showthread.php?t=294465)
txt to jpg
Подскажите пожалуйста, есть желающие помочь (можно не бесплатно) написать простейшую программу, которая брала бы текст из txt файла (или файлов) и вставляла бы его(их) в картинку с белым фоном с таким же названием.jpg. При этом я должен задавать ширину изображения, а высота делается исходя из объема текста.
Все это делает простейшая заброшенная программа http://explayt7.ucoz.ru/news/2009-05-31-5, однако она нарезает текст исключительно в картинки 320х240 и изменить это нельзя.
|
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 пикселей).
|
2Iska
Спасибо, я только не понял как указывать исходный файл, что значит "Исходный файл указывается аргументом пакетного файла"?
|
XXXp, можете просто перетащить в Проводнике искомый текстовый файл на пакетный файл/ярлык к пакетному файлу.
И что насчёт:
Цитата:
Цитата Iska
XXXp, каким образом планируете указывать размер? »
|
?
|
2Iska
Так Вы же указали, в настройках скрипта 480 пикселей где стоит, тут и буду!
Спасибо!
Подскажите только, а как кроме перетаскивания можно указывать файл?
|
2pzh2393 спасибо
Готовую утилиту я приводил в стартовом посте, там есть проблема, что все изображения имеют размер 320х240
А онлайн не подойдет, мне 100 файлов за раз нужно делать, хотелось бы это реализовывать пакетно. Тем более, что вариант Iska очень хорошо работает и настраивается!
|
Цитата:
Цитата XXXp
Так Вы же указали, в настройках скрипта 480 пикселей где стоит, тут и буду! »
|
Ясно. Раз устраивает, пусть так и остаётся.
Цитата:
Цитата XXXp
Подскажите только, а как кроме перетаскивания можно указывать файл? »
|
В командной строке аргументом пакетного файла:
Когда Вы делаете:
Цитата:
Цитата Iska
можете просто перетащить в Проводнике искомый текстовый файл на пакетный файл/ярлык к пакетному файлу. »
|
«за кадром» происходит то же самое.
Цитата:
Цитата XXXp
100 файлов за раз нужно делать, хотелось бы это реализовывать пакетно. »
|
ширина изображений для всех 100 будет одинакова?
|
Цитата:
Цитата Iska
ширина изображений для всех 100 будет одинакова? »
|
Да, ширину достаточно мне один раз задать, дальше по размеру текста уже только высота меняется
Спасибо!
|
Цитата:
Цитата XXXp
Да, ширину достаточно мне один раз задать, дальше по размеру текста уже только высота меняется »
|
Ну тогда просто пишете ещё один пакетный файл, в котором будут 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» и вызов.
|
Цитата:
Цитата Iska
Ну тогда просто пишете ещё один пакетный файл, в котором будут 100 строк вида: »
|
А возможно сделать такой код, чтобы все подпапки для "C:\Песочница\" и соответственно все файлы тхт в этих подпапках обрабатывались? Чтобы картинки сохранялись в соответствующей папке с соответствующим названием?
|
Время: 20:31.
© OSzone.net 2001-