Graphic BLOB v TImage

8 отговора 144 прегледа
#1

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.

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

Re: Graphic BLOB v TImage

probvai v helpa TBlobField.Assign moje6 da otita6 po tizi na4in.

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

Re: Graphic BLOB v TImage

Аз го правя през LoadFromStream/SaveToStream методите, като за контейнер ползвам TStringStream (BLOB-а свободно може да се интерпретира като голям низ).

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

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!
Отговор
в отговор на pitanka #5

Re: Graphic BLOB v TImage

Ако проблема ти е само JPEG - погледни в тори и потърси TDBJPEGImage - това може би работи ;-) и е безплатно. Реално wrapper на TImage който работи с DB се прави лесно и бързо - единственото което трябва да се напише (а аз не знам как и не ми се мисли) е функция която зарежда картинката не от файл ами от stream - но може би това е лесно - трябва да се погледне сорса на loadfromfile метода на TImage.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #6

Re: Graphic BLOB v TImage

Фантомас много благодаря, точно това ми трябваше, но се появи 1 проблем. Като се опитвам да инсталирам компонента се оплаква че нямало DsgnIntf.dcu, влезнах в гоогле и потърсих, намерих как уж се решава проблема (към Делфито върви и сорс-а на това животно и само му включваш директорията към path-a , но издава грешки при компилацията) :(. Искам да помоля, някой който го има този файл ако може да ми го изпрати на ivan20@mail.bg . 1000 благодарности :).

Отговор
в отговор на pitanka #7

Re: Graphic BLOB v TImage

Проблема е по сложен - от версия 6 нататък е прекроена цялата архитектура на библиотеките - т.е. разделението между библиотеки с "чист" код и тези които обслужват IDE средата - така наречените design time библиотеки. Това което ти го иска е модул облужващ точно връзката с IDE средата. Проблема е, че компонента е правен за Д5 - и няма да можеш да го ползваш в този му вид - трябва да се преработи.

Ако ми остане време довечера ще го погледна и ще го пипна така, че да става за инсталация на D6 или 7 евентуално.
Ама всъщност с коя версия си на Д? Щото май си с 5 - за 6-цата трябва да ти иска desighintf а не dsgnintf.
Не се опитвай да компилираш някой от горните - нито ще можеш - нито пък нещо ще стане. Просто към design time пакета трябва да се добави designide.dcp и ще се компилира правилно, но само ако нещата са правилно разделени на design и runtime части.

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #8

Re: Graphic BLOB v TImage

С Делфи 7 съм. Мдам пробвах и не стана :(. Ще съм ти много задължен ако успееш.

Отговор
в отговор на pitanka #9

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 *)
(*@\\\*)

---
Е т'ва е живот!
Отговор