Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2024, 07:19   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,154
По умолчанию Отобразить файлы .emf

здравствуйте, есть папка с файлами .emf как с помощью ЯП питон вывести эти файлы иконками точно также как это делается в проводнике Виндувс относительно файлов jpg или png? спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 28.08.2024, 12:38   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,154
По умолчанию

в теории, код:
Код:
import os
import win32gui
import win32con
from tkinter import Tk, Canvas, PhotoImage
def get_icon(file_path):
    # Получаем дескриптор файла
    hfile = win32gui.LoadImage(None, file_path, win32con.IMAGE_ICON, 0, 0, win32con.LR_LOADFROMFILE)
    # Создаем изображение из дескриптора
    icon_data = win32gui.ExtractIcon(hfile, 0)
    ico = Image.open(io.BytesIO(icon_data))
    return ico
# путь к папке
folder_path = r"I:\Российская Федерация\image"
# Получаем список файлов с расширением .emf
emf_files = [f for f in os.listdir(folder_path) if f.endswith('.emf')]
# Создаем окно для отображения иконок
root = Tk()
canvas = Canvas(root, width=800, height=600)
canvas.pack()
x, y = 10, 10
for file in emf_files:
    file_path = os.path.join(folder_path, file)
    try:
        ico = get_icon(file_path)
        photo = ImageTk.PhotoImage(ico)
        canvas.create_image(x, y, image=photo)
        x += ico.size[0] + 10
        if x > canvas.winfo_width():
            x = 10
            y += ico.size[1] + 10
    except Exception as e:
        print(f"Ошибка при обработке файла {file}: {e}")
root.mainloop()
должен показать иконки, но пока у всех файлов сообщение на подобии:
Ошибка при обработке файла 8.26.emf: (0, 'LoadImage', 'No error message is available')
кто сможет подправить?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 28.08.2024, 14:23   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,154
По умолчанию

так даже лучше
Код:
import os
from PIL import Image
input_dir = r'I:\Российская Федерация\image'
output_dir = input_dir
file_count = 0
if not os.path.exists(output_dir):
    os.makedirs(output_dir)
for filename in os.listdir(input_dir):
    if filename.endswith('.emf'):
        img = Image.open(os.path.join(input_dir, filename))
        output_filename = os.path.join(output_dir, filename.replace('.emf', '.png'))
        img.save(output_filename, 'PNG')
        file_count += 1
print('Программа завершила свою работу, файлы emf переформатированы в png, их количество: ' + str(file_count))
не будем теребачить tkinter))
Ципихович Эндрю вне форума Ответить с цитированием
Старый 30.08.2024, 11:22   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,154
По умолчанию

нужно ещё будет опробовать конвертацию в svg
Код:
import cairosvg

with open('input.emf', 'rb') as emf_file:
    emf_data = emf_file.read()

with open('output.svg', 'wb') as svg_file:
    cairosvg.svg2svg(bytestring=emf_data, write_to=svg_file)
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
КАК ОТОБРАЗИТЬ ФАЙЛЫ И ПАПКИ С ФЛЕШКИ ДАЖЕ КОГДА В НАСТРОЙКАХ ПАПКИ СНЯТА ГАЛОЧКА СКРЫТЬ ЗАЩИЩЕННЫЕ ФАЙЛЫ adninistraotr Общие вопросы по программированию, компьютерный форум 1 12.12.2019 10:10
Как в диалоге отобразить только .pdf файлы? Skoew Visual C++ 2 12.11.2015 23:41
Файлы: Составить программу, которая перепишет фамилии в отдельные файлы в соответствии с названием группы Гульвира Помощь студентам 1 23.05.2013 10:04
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
как отобразить в таблице (на форме) все файлы которые находятся в определённой папке? mojohead Помощь студентам 10 05.04.2011 10:48