Основной проблемой, конечно, стало сохранить картинку на диск.
Поначалу решил использовать cClipBoardObject.dll (автору компоненты большое спасибо за идею!), НО! Возникла следующая проблема: картинки сохраненные с помощью вышеуказанной компоненты имеют формат данных WMF (некоторые просмоторщики распознают как EMF) и при загрузке в базу картинки отображались некорректно, да и с конвертировать их при помощи Новый Картинка(...).Преобразовать(...) тоже не получилось - система упорно выдавала ошибку.
Решил написать собственную компоненту. Функционал небольшой:
2 свойства:
- Тип файла/FileType - тип файла в который будет сохранено изображение из буфера обмена (0 - bmp, 1 - jpg, по умолчанию 1);
- Сжатие/Compression - степень сжатия для файлов формата JPEG (значение по умолчанию 80);
1 Метод:
- СохранитьИзБуфера/SaveFromClipboard(ПутьКФайлу);
Пока реализовано сохранение только для типа CF_MetaFilePict (WMF). При копировании из Excel картинки в буфер используется именно этот формат.
В будущем планирую расширить функционал компоненты и извлекать уже изображения и других типов.
Пример использования для 8.2.
На 7.7 тоже все работает.
Похожие разработки: