C++Builder 5 - image в OLE формат

3 отговора 81 прегледа
#1

C++Builder 5 - image в OLE формат

C++Builder 5 - image в OLE формат, от Access DB в QuickReport...

Image-ите ми са в Access DB като OLE Object... Ползвам BCB 5.0 и ADO... Целта е да принтирам картинката...

Каквото видях в Гугъл излиза, че това е сериозен проблем... Трябва да махна някакъв хедър на OLE-то, който е 78 байта /вероятно/...

Проблемът е, че OLE-то ми съдържа .jpg, .gif, .bmp и идея си нямам как да вържа цялата работа с TQRDBImage.

Много неприятна е цялата тази работа, разчитам на помощ. Дано някой е имал този проблем и е открил решение . Пуснал съм в различни форуми, защото наистина се надявам да има някакво по-елегантно решение от това да бъркам в OLE-то.

Знам, че форумът е за Делфи, обаче май там също го има този проблем...

Отговор
в отговор на BSG #2

Re: C++Builder 5 - image в OLE формат

Изглежда за принтиране ще трябва да ползваш TQRImage..поне докато се намери по-елегантно решение :

OleContainer1->Copy();
TQRImage *i = Form1->QRImage1;
TQRDBImage *di = Form1->QRDBImage1;
i->Stretch = di->Stretch ;
i->BoundsRect = di->BoundsRect ;i->Visible =false;
int x = Clipboard()->GetAsHandle(CF_BITMAP);
i->Picture->LoadFromClipboardFormat(CF_BITMAP,x,0) ;
Form1->QuickRep1->Preview() ;


Успех.

Отговор
в отговор на Sury #3

Re: C++Builder 5 - image в OLE формат

Мерси за съвета, чак сега виждам отговора. Междувременно проблемът го реших по сходен начин... Значи извличането от базата данни стана безпроблемно през blob stream-ове...

Обаче не разбирам защо се губи качеството на image-а? Примерно jpeg 300dpi излиза като 96dpi /или 72, не знам точно/... Нещо вътрешно си бъзика билдъра... А печатането ми е фундаментално... Прегледах сто хиляди неща по въпроса и никак не успях да си реша проблема...

Дано утре на отпочинала глава да измисля нещо Ако някой знае как да постъпя ще бъда изключително благодарен Поздрави!

Отговор
в отговор на BSG #4

Re: C++Builder 5 - image в OLE формат

Качеството не би трябвало да се губи.
Поне за картинки с еднакви размери.

Опитай да оразмериш изображенията в базата така че да не ти се налага да ги "стречваш" в рипорта.Ако се получи добре, значи просто трябва да обмислиш вариант с векторна графика - мета файлове.

Отговор