Graphic BLOB v TImage
8 отговора
144 прегледа
Graphic BLOB v TImage
Nqkoi ima li si na ideq kak moga v obekt TImage da zaredq kartinka ot baza danni?
Znam che ima i takova jivotno kato DBImage, no DBImage ima 1 maluk nedostatuk - ne poddurja neshto razlichno osven BMP i suotvetno bazata mi danni stava mnogo golqma, ideqta mi e v bazata danni da sa jpeg-ove taka che da stane po - malka i programata da vurvi po - burzo.
Predvaritelno blagodarq za vsqka pomosht.
Znam che ima i takova jivotno kato DBImage, no DBImage ima 1 maluk nedostatuk - ne poddurja neshto razlichno osven BMP i suotvetno bazata mi danni stava mnogo golqma, ideqta mi e v bazata danni da sa jpeg-ove taka che da stane po - malka i programata da vurvi po - burzo.
Predvaritelno blagodarq za vsqka pomosht.
Re: Graphic BLOB v TImage
probvai v helpa TBlobField.Assign moje6 da otita6 po tizi na4in.
Re: Graphic BLOB v TImage
Аз го правя през LoadFromStream/SaveToStream методите, като за контейнер ползвам TStringStream (BLOB-а свободно може да се интерпретира като голям низ).
Golemite stringowe...
az po princip naposledak wsichko shto e bufer go tretiram kato edin ewentualno golqm string :) mnoo lesno se konkatwat resizwat i indeksirat ne za drugo
------------------------------
I got a COMPILER, and I'm not afraid to use it!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: Graphic BLOB v TImage
Ако проблема ти е само JPEG - погледни в тори и потърси TDBJPEGImage - това може би работи ;-) и е безплатно. Реално wrapper на TImage който работи с DB се прави лесно и бързо - единственото което трябва да се напише (а аз не знам как и не ми се мисли) е функция която зарежда картинката не от файл ами от stream - но може би това е лесно - трябва да се погледне сорса на loadfromfile метода на TImage.
---
Е т'ва е живот!
---
Е т'ва е живот!
Re: Graphic BLOB v TImage
Фантомас много благодаря, точно това ми трябваше, но се появи 1 проблем. Като се опитвам да инсталирам компонента се оплаква че нямало DsgnIntf.dcu, влезнах в гоогле и потърсих, намерих как уж се решава проблема (към Делфито върви и сорс-а на това животно и само му включваш директорията към path-a , но издава грешки при компилацията) :(. Искам да помоля, някой който го има този файл ако може да ми го изпрати на ivan20@mail.bg . 1000 благодарности :).
Re: Graphic BLOB v TImage
Проблема е по сложен - от версия 6 нататък е прекроена цялата архитектура на библиотеките - т.е. разделението между библиотеки с "чист" код и тези които обслужват IDE средата - така наречените design time библиотеки. Това което ти го иска е модул облужващ точно връзката с IDE средата. Проблема е, че компонента е правен за Д5 - и няма да можеш да го ползваш в този му вид - трябва да се преработи.
Ако ми остане време довечера ще го погледна и ще го пипна така, че да става за инсталация на D6 или 7 евентуално.
Ама всъщност с коя версия си на Д? Щото май си с 5 - за 6-цата трябва да ти иска desighintf а не dsgnintf.
Не се опитвай да компилираш някой от горните - нито ще можеш - нито пък нещо ще стане. Просто към design time пакета трябва да се добави designide.dcp и ще се компилира правилно, но само ако нещата са правилно разделени на design и runtime части.
---
Е т'ва е живот!
Ако ми остане време довечера ще го погледна и ще го пипна така, че да става за инсталация на D6 или 7 евентуално.
Ама всъщност с коя версия си на Д? Щото май си с 5 - за 6-цата трябва да ти иска desighintf а не dsgnintf.
Не се опитвай да компилираш някой от горните - нито ще можеш - нито пък нещо ще стане. Просто към design time пакета трябва да се добави designide.dcp и ще се компилира правилно, но само ако нещата са правилно разделени на design и runtime части.
---
Е т'ва е живот!
Re: Graphic BLOB v TImage
С Делфи 7 съм. Мдам пробвах и не стана :(. Ще съм ти много задължен ако успееш.
Re: Graphic BLOB v TImage
Ето ти малко инструкции как да го инсталираш сам - изпадам в подробности - извинявай ако съм те подценил
1. Създаваш пакет - File -> New -> Package (или Others -> Package)
1а. Редактираш файл AH_DEF.INC по начина по който съм описал по долу
2. В групата Contains добавяш всички pas файлове (десен бутон и Add) - можеш да ги добавиш всички на веднъж
3. В групата Requires - > пак добавяш следния файл - designide.dcp - ще го намериш в поддиректория Lib на главната директория на D7
4. Записваш пакета - с име примерно JPEG_pck.dpk
6. Проверяваш опцията на компилатора за предаване на константи като параметри - щото имаше такъв проблем
7. Компилираш и инсталираш пакета - тука ще те попита дали изкаш да включиш други пакети - потвърди.
Това е - а ето и пълния текст на inc файла от горе
----------------------------------------------------------------------------------------
(*$define iso_latin1 *)
(*@/// Compiler switches for version checks *)
(*$ifdef ver150 *) //ново
(*$define delphi_7 *) //ново
(*$else *) //ново
(*$ifdef ver140 *)
(*$define delphi_6 *)
(*$else *)
(*$ifdef ver130 *)
(*$define delphi_5 *)
(*$else *)
(*$ifdef ver120 *)
(*$define delphi_4 *)
(*$else *)
(*$ifdef ver110 *)
(*$define builder_3 *)
(*$else *)
(*$ifdef ver100 *)
(*$define delphi_3 *)
(*$else *)
(*$ifdef ver95 *)
(*$define builder_1 *)
(*$endif *)
(*$ifdef ver90 *)
(*$define delphi_2 *)
(*$else *)
(*$ifdef ver80 *)
(*$define Delphi_1 *)
(*$else
(*$define bp_7 *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *) //ново
(*$ifdef delphi_1 *)
(*$define delphi_ge_1 *)
(*$endif *)
(*$ifdef delphi_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$endif *)
(*$ifdef delphi_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$endif *)
(*$ifdef delphi_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$endif *)
(*$ifdef delphi_5 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$endif *)
(*$ifdef delphi_6 *)
(*$define delphi_gt_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$define delphi_ge_6 *)
(*$endif *)
//ново
(*$ifdef delphi_7 *)
(*$define delphi_gt_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$define delphi_ge_6 *)
(*$define delphi_ge_7 *) //това не се използва никъде!
(*$endif *)
{ shortstring defined : use string in VCL methods }
{ undefined: use ansistring instead }
(*$ifdef delphi_1 *)
(*$define shortstring *)
(*$else *)
{ The Delphi2/3 VCL only compiles with huge strings }
(*$undef shortstring *)
(*$endif *)
(*@\\\*)
---
Е т'ва е живот!
1. Създаваш пакет - File -> New -> Package (или Others -> Package)
1а. Редактираш файл AH_DEF.INC по начина по който съм описал по долу
2. В групата Contains добавяш всички pas файлове (десен бутон и Add) - можеш да ги добавиш всички на веднъж
3. В групата Requires - > пак добавяш следния файл - designide.dcp - ще го намериш в поддиректория Lib на главната директория на D7
4. Записваш пакета - с име примерно JPEG_pck.dpk
6. Проверяваш опцията на компилатора за предаване на константи като параметри - щото имаше такъв проблем
7. Компилираш и инсталираш пакета - тука ще те попита дали изкаш да включиш други пакети - потвърди.
Това е - а ето и пълния текст на inc файла от горе
----------------------------------------------------------------------------------------
(*$define iso_latin1 *)
(*@/// Compiler switches for version checks *)
(*$ifdef ver150 *) //ново
(*$define delphi_7 *) //ново
(*$else *) //ново
(*$ifdef ver140 *)
(*$define delphi_6 *)
(*$else *)
(*$ifdef ver130 *)
(*$define delphi_5 *)
(*$else *)
(*$ifdef ver120 *)
(*$define delphi_4 *)
(*$else *)
(*$ifdef ver110 *)
(*$define builder_3 *)
(*$else *)
(*$ifdef ver100 *)
(*$define delphi_3 *)
(*$else *)
(*$ifdef ver95 *)
(*$define builder_1 *)
(*$endif *)
(*$ifdef ver90 *)
(*$define delphi_2 *)
(*$else *)
(*$ifdef ver80 *)
(*$define Delphi_1 *)
(*$else
(*$define bp_7 *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *)
(*$endif *) //ново
(*$ifdef delphi_1 *)
(*$define delphi_ge_1 *)
(*$endif *)
(*$ifdef delphi_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$endif *)
(*$ifdef delphi_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$endif *)
(*$ifdef delphi_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$endif *)
(*$ifdef delphi_5 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$endif *)
(*$ifdef delphi_6 *)
(*$define delphi_gt_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$define delphi_ge_6 *)
(*$endif *)
//ново
(*$ifdef delphi_7 *)
(*$define delphi_gt_4 *)
(*$define delphi_gt_3 *)
(*$define delphi_gt_2 *)
(*$define delphi_gt_1 *)
(*$define delphi_ge_1 *)
(*$define delphi_ge_2 *)
(*$define delphi_ge_3 *)
(*$define delphi_ge_4 *)
(*$define delphi_ge_5 *)
(*$define delphi_ge_6 *)
(*$define delphi_ge_7 *) //това не се използва никъде!
(*$endif *)
{ shortstring defined : use string in VCL methods }
{ undefined: use ansistring instead }
(*$ifdef delphi_1 *)
(*$define shortstring *)
(*$else *)
{ The Delphi2/3 VCL only compiles with huge strings }
(*$undef shortstring *)
(*$endif *)
(*@\\\*)
---
Е т'ва е живот!