Member 9490127 Ответов: 2

Откройте фотографии В C # помогите мне


Привет В программе внутри DataGridView находится одно из полей фотографий, которое загружается из баз данных
Теперь я хочу отобразить фотографию с помощью фотоприложения типа veiwer на фотографии
У кого-нибудь есть решение?

Что я уже пробовал:

[удален дубликат текста]

Prifti Constantine

Вы хотите показать предварительный просмотр фотографии внутри GridView?

2 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Приложение для фотографий (например, Viewer) требует путь к фотографии, чтобы прочитать файл и просмотреть его. Поскольку ваша фотография взята из базы данных, приложение просмотра (или любое другое приложение для фотографий) вряд ли получит к ней доступ.

Одним из решений этой проблемы будет создание временного файла с Guid основанное имя. Это позволит вам сохранить файл на некоторое время, а затем передать этот временный файл в программу просмотра фотографий. Это единственный способ решить эту проблему — поскольку я считаю, что зрители фотографий не будут получать доступ к потокам базы данных. :смеяться:

Вам нужно будет записать все содержимое из базы данных (двоичное содержимое) в файл с соответствующими типами mime, а затем сохранить его как временный файл в ваших локальных каталогах, чтобы предоставить зрителю доступ к этому файлу. Создайте временный файл из объекта stream в c# - Stack Overflow[^], вы можете позже удалить его, когда он больше не нужен. :-)

Открытие программы просмотра фотографий будет просто простой задачей, вы можете использовать Process тип с System.Diagnostics и запустите новый процесс, чтобы показать файл.

Process.Start("viewer.exe", "parameter-temp-file-path");

Что касается части "когда больше не нужно", вы можете проверить, когда процесс завершится, а затем удалить файл.

Дополнительные сведения о классе процесса, читать: Класс Процесса (System.Диагностика)[^]


Рейтинг:
0

Member 9490127

как найти

parameter-temp-file-path
в гридвее


LLLLGGGG

параметр-temp-file-path - это путь к сохраненному временному файлу.
Предположим, у вас есть изображение в БД:
1. Скопируйте его на жесткий диск в каталог Temp
Например, вы можете создать новый временный файл с помощью GetTempFileName (https://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename (v=vs.110). aspx), а затем запишите все данные в этот файл (мы называем этот файл " asd6as7asd")

2. Использовать Процесс.Начало("viewer.exe", "asd6as7asd"); для запуска программы просмотра

NB: никогда больше не используйте ответы, чтобы попросить разъяснений... эти ответы могут быть легко опущены/сообщены. Вместо этого используйте комментарии