Создание программы для автоматического создания карточек путем вставки текста и изображений в шаблон и сохранения его как изображения.
Все работает, но цвета изображений инвертируются.
Я пробовал отключить темный режим, а также инвертировать цвета вручную, но ничего не помогло.
Я использую PyCharm с Pillow 12.1.0
Завершенная карта
Значок
from PIL import Image, ImageDraw, ImageFont
ico_pow = Image.open("Resources/Icons/Ico_Power.png").resize((16,16))
def draw_formatted_text(base, image, pos, text, font, line_length):
x = pos[0]
y = pos[1]
for word in text.split():
if word == "POW":
if x + 17 >= pos[0] + line_length:
y += (font.getbbox(word)[3] - font.getbbox(word)[1])+4
x = pos[0]
base.paste(ico_pow, (x, y))
x += 17
... other cases for different icons ...
else:
if x + (font.getbbox(word)[2] - font.getbbox(word)[0]) >= pos[0] + line_length:
y += (font.getbbox(word)[3] - font.getbbox(word)[1])+4
x = pos[0]
image.text((x,y), word, font=font, fill=text_color)
x += (font.getbbox(word)[2] - font.getbbox(word)[0])+4
def create_card(csv_file, card_type, image_file, output_file, wrap_amt):
with open(csv_file, 'r') as file:
reader = csv.reader(file)
for row in reader: # for each row (card)
template = Image.open(image_file) # Open the card template image file
image = ImageDraw.Draw(template) # make a PIL drawable image from it
for i in range(len(card_type)): # for each column (based on card_type coord list)
draw_formatted_text(template, image, card_type, row, font, wrap_amt)
template.save('Output/' + output_file + '/crd' + output_file + str(row[0]) + '.png')
create_card("Resources/Card Lists/Card Game Cards - Races.csv", listRace, "Resources\Card Templates/RaceTemplate.gif", "Race", 120)
Подробнее здесь: https://stackoverflow.com/questions/798 ... -on-images
Подушка инвертирует цвета на изображениях ⇐ Python
Программы на Python
1770226856
Anonymous
Создание программы для автоматического создания карточек путем вставки текста и изображений в шаблон и сохранения его как изображения.
Все работает, но цвета изображений инвертируются.
Я пробовал отключить темный режим, а также инвертировать цвета вручную, но ничего не помогло.
Я использую PyCharm с Pillow 12.1.0
Завершенная карта
Значок
from PIL import Image, ImageDraw, ImageFont
ico_pow = Image.open("Resources/Icons/Ico_Power.png").resize((16,16))
def draw_formatted_text(base, image, pos, text, font, line_length):
x = pos[0]
y = pos[1]
for word in text.split():
if word == "POW":
if x + 17 >= pos[0] + line_length:
y += (font.getbbox(word)[3] - font.getbbox(word)[1])+4
x = pos[0]
base.paste(ico_pow, (x, y))
x += 17
... other cases for different icons ...
else:
if x + (font.getbbox(word)[2] - font.getbbox(word)[0]) >= pos[0] + line_length:
y += (font.getbbox(word)[3] - font.getbbox(word)[1])+4
x = pos[0]
image.text((x,y), word, font=font, fill=text_color)
x += (font.getbbox(word)[2] - font.getbbox(word)[0])+4
def create_card(csv_file, card_type, image_file, output_file, wrap_amt):
with open(csv_file, 'r') as file:
reader = csv.reader(file)
for row in reader: # for each row (card)
template = Image.open(image_file) # Open the card template image file
image = ImageDraw.Draw(template) # make a PIL drawable image from it
for i in range(len(card_type)): # for each column (based on card_type coord list)
draw_formatted_text(template, image, card_type[i], row[i], font, wrap_amt)
template.save('Output/' + output_file + '/crd' + output_file + str(row[0]) + '.png')
create_card("Resources/Card Lists/Card Game Cards - Races.csv", listRace, "Resources\Card Templates/RaceTemplate.gif", "Race", 120)
Подробнее здесь: [url]https://stackoverflow.com/questions/79882958/pillow-is-inverting-colors-on-images[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия