fedoseev_sv |
В программе очень много переделывать придется, если сделать по-другому. |
"Не верю!" ((с) Станиславский) Не верю, что сценарии использования картинок столь сложны и разнообразны, что нельзя было бы их свести в один класс или даже функцию. Не верю, что количество мест, где используются картинки, доходит хотя бы до 50.
fedoseev_sv |
В программе очень много переделывать придется, если сделать по-другому. В моей программе есть OLE - поле, в котором хранятся объекты Autocad Drawing. Эти чертежи выводятся на печать в отчетах, выгружаются в Excel, когда формируется коммерческое предложение и т.п.
Теперь я отказался от Autocad, и написал свой редактор чертежей на C#. Нарисовал чертеж, и его надо вставить в OLE - поле Access DB как EMF. Вот и застрял я с этой проблемой. Если залить в базу по ADO.NET как поток двоичных данных - Access не будет отображать. или во всех формах придется переделывать отображение чертежа. Нормально отображается, только если в вставить как рисунок. Руками делаю ctrl-C + ctrl-V. А как программно внедрить EMF? |
Если обратите внимание, то бОльшая часть кода (процентов эдак 75) примера в другом сегодняшнем обсуждении делает преобразование из растрового изображения именно в EMF. Почувствуйте себя немного Микеланжело и отсеките лишнее ;)
Есть и другие подходы. Например, такой: находите или пишете OLE-сервер, который работает с EMF. Устанавливаете его на рабочей станции, где будут добавляться изображения в базу. Получаете содержимое OLE-объекта в своей C#-программе. Добавляете к нему заголовок (можно найти описание в MSDN Library по ключевому слову OBJECTHEADER), и кладёте получившееся в BLOB-поле.
Чем он может помочь?