salut
je sais que cette question était posé maint fois, et il y a ceux qui sont avec enregistrement d'image dans une base et les contres
mois aussi j'étais contre, mais la solution de partagé un répertoire, où même de crée un programme comme serveur d'image, me dérange actuellement;
alors je commence à crusé la question, en utilisant une base FB, mais bien sûr en utilisant des image de type jpeg, à cause de leur taille réduit
le probléme c'est qu'avec le composant dbimage ne suporte pas cette forme, alors je dois passé par TImage, et chargé manuellemnt, la solution je l'avait trouvé, en rassemblant les morceaux sur le site developpez,faq,google, et autre , le code peut même chargé une image bmp et la convertir en jpeg,
j'attend vos commentaires, et des idées
bon dev à tou le monde
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 uses jpeg,ExtCtrls,DB,Classes,Graphics,SysUtils; ..... Procedure FichiertoBlob(blob:TBlobField;Image:TImage); procedure BlobToImage(blob:TBlobField;Image:TImage); implementation const pkBitmap = $42; pkJPEG = $FF; procedure FichiertoBlob; var s:string; Stream:TMemoryStream; b:byte; Graphic:TGraphic; bmp:TBitmap; begin with DataModule2 do if OpenPictureDialog1.Execute then begin s:=OpenPictureDialog1.FileName; if (FileExists(s)) then begin Stream:=TMemoryStream.Create; try Stream.LoadFromFile(s); // Stream.Position:=0; Stream.Read(b, 1); if b in [pkBitmap,pkJPEG] then begin Stream.Position:=0; Graphic := TJPEGImage.Create; if b=pkBitmap then begin bmp := TBitmap.Create; try bmp.LoadFromStream(Stream); Graphic.Assign(bmp); Stream.Clear; Graphic.SaveToStream(Stream); finally bmp.Free; end; end else Graphic.LoadFromStream(Stream); Stream.Position:=0; blob.LoadFromStream(Stream); Image.Picture.Graphic := Graphic; Graphic.Free; end; finally Stream.Free; end; end; end; end; procedure BlobToImage; var ss:TMemoryStream; Graphic:TGraphic; b:byte; begin if not blob.IsNull then begin ss:=TMemoryStream.Create; try blob.SaveToStream(ss); ss.Position:=0; ss.Read(b, 1); Graphic:=Nil; case b of pkBitmap: Graphic := TBitmap.Create; pkJPEG: Graphic := TJPEGImage.Create; end; try if Graphic <> nil then begin ss.Position:=0; Graphic.LoadFromStream(ss); end; Image.Picture.Graphic:=Graphic; finally Graphic.Free; end; finally ss.Free; end; end else Image.Picture.Graphic:=nil; end;
Partager