Проблема Необходимо вставить текст со списка в Excel на фото

Николай Карп

Новый пользователь
Сообщения
6
Реакции
0
Приветы всем.

Есть примерно 500 графических файлов. Нужно в одинаковое место на фото вставить текст (для каждого фото свой текст). Есть список в Экселе - найменование фото и текст который необходимо на него вставить. Каким образом можна это сделать в автоматическом режиме? Не хочется возиться с каждым отдельно...
 
Я так понимаю, Вам нужно это сделать наявным фоторедактором или макросами екселя.
Попробуйте Бейсик:
Скопировать список в буфер обмена и сделать поочередно надписи в рисунках, которые в данной папке.
Но результат будет в формате .bmp - нужно будет конвертировать в .jpg, что тоже можно сделать Бейсиком.
 
В экселе это всё делается с результатом в конце виде экселовского файла, а не в виде боевых машин пехоты и прочей графики. Но я знаю как это делать руками. А если вы знаете как создать макрос, то подскажите ТС.
 
Вот вам рабочая программа на Python
Потребуется установить сам Python (лучше версии 3.7* или 3.8) и библиотеки PIL, os и xlrd

Там где подписан комментарий - вставьте свои данные.
Вот код:
Python:
from PIL import Image, ImageDraw
import os
import xlrd

# Укажите внутри кавычек путь к папке с фото и файлом Excel
path_ = r'F:\загрузки\Анонс 21.01.21'
# file.xlsx - имя вашего Excel файла вместе с расширением
bk = xlrd.open_workbook(path_+r'\file.xlsx')
sh = bk.sheet_by_index(0)

for i in range(sh.nrows):
    lst_ = sh.row_values(i, 0)
    if isinstance(lst_[0], float):
        name = path_+'\\'+str(int(lst_[0]))+'.jpg'
    else:
        name = path_+'\\'+str(lst_[0])+'.jpg'
    if os.path.isfile(name):
        img = Image.open(name)
        imgDrawer = ImageDraw.Draw(img)
        # Цифры - это расположение текста по оси Х и У на картинке
        imgDrawer.text((10, 20), str(lst_[1]))
        img.save(name)

Могу упаковать в стандартный EXE файл, но придется всегда подстраиваться под программу.


1.jpg
2.jpg
3.jpg
5.jpg
 
Последнее редактирование:
Вот вам рабочая программа на Python
Потребуется установить сам Python (лучше версии 3.7* или 3.8) и библиотеки PIL, os и xlrd

Там где подписан комментарий - вставьте свои данные.
Вот код:
Python:
from PIL import Image, ImageDraw
import os
import xlrd

# Укажите внутри кавычек путь к папке с фото и файлом Excel
path_ = r'F:\загрузки\Анонс 21.01.21'
# file.xlsx - имя вашего Excel файла вместе с расширением
bk = xlrd.open_workbook(path_+r'\file.xlsx')
sh = bk.sheet_by_index(0)

for i in range(sh.nrows):
    lst_ = sh.row_values(i, 0)
    if isinstance(lst_[0], float):
        name = path_+'\\'+str(int(lst_[0]))+'.jpg'
    else:
        name = path_+'\\'+str(lst_[0])+'.jpg'
    if os.path.isfile(name):
        img = Image.open(name)
        imgDrawer = ImageDraw.Draw(img)
        # Цифры - это расположение текста по оси Х и У на картинке
        imgDrawer.text((10, 20), str(lst_[1]))
        img.save(name)

Могу упаковать в стандартный EXE файл, но придется всегда подстраиваться под программу.
А как насчёт сделать это в виде html страницы, к примеру фото (одинакового размера) в три столбика на странице, а поверх фото пишется текст (также исходя из файла екселя и названия фото). Если возможно с последующей выгрузкой фото в папку или просто печать страницы в pdf
 
img05fd0e8171478c2.29427265.jpg
Имеется около 200 фото без цен и процентов. Данные о ценах процентах написаны в екселе. С помощью чего можно автоматизировать или полуавтомат зировать перенос текста с екселя на фото, что б сделать такую фотографию.
 
Последнее редактирование модератором:
Ну алгоритм примерно такой - создаём пустой эскиз, размещаем на нем данные из эксель, только теперь не только текст, а несколько изображений.
Верно понимаю?
 
Ну алгоритм примерно такой - создаём пустой эскиз, размещаем на нем данные из эксель, только теперь не только текст, а несколько изображений.
Верно понимаю?
128129.jpg
img05fd0e8171478c2.29427265.jpg

По поводу алгоритма не понял. Вставил наглядно две картинки до и после. Первая у меня есть готовая и на неё нужно перенести данные из екселя (или вручную записать для каждой фотографии через какую-то программу) чтобы получилась вторая фотография.
В екселе записаны: названия фото, цена 1, цена 2, процент скидки.
 
Последнее редактирование модератором:
Вставил наглядно две картинки до и после. Первая у меня есть готовая и на неё нужно перенести данные из екселя (или вручную записать для каждой фотографии через какую-то программу) чтобы получилась вторая фотография.
В екселе записаны: названия фото, цена 1, цена 2, процент скидки.
1) Считаю, что вы вообще неправильно подходите к задаче. Надо не прямо на фото рисовать цену если вам нужен html, а просто средствами сайта выводить цену поверх. Если потом поменяется цена или скидка или фото, то не придётся переделывать.
2) Раз уж выбрали свой вариант решения, то советую ещё спросить в темах поддержки этого дополнения к Тотал Командер, возможно гуру этой программы сделают такую кнопку. Если что, потом поделитесь решением :).
 
regist, я вообще до твоего поста думал что ТС просто картинки хочет...типа ценников что то.
Выше написано
А как насчёт сделать это в виде html страницы, к примеру фото (одинакового размера) в три столбика на странице, а поверх фото пишется текст (также исходя из файла екселя и названия фото). Если возможно с последующей выгрузкой фото в папку или просто печать страницы в pdf
А если на сайт со стандартным движком, то там наверняка даже плагины подходящие есть и уже выдумывать не надо. Если что-то простенькое или самопис, то тогда тоже заменить эксел на базу данных и оттуда подтягивать и выводить поверх фото. Ну и потом, имхо, чем с экселом работать (для чего должен быть установленный он на компе) уже лучше с CSV в который можно сохранить из экселя если что.
 
Назад
Сверху Снизу