Bonjour à tous,
Cela fais maintenant 3h que je cherche désespérément une solution à mon problème et toujours rien.
J'ai ajouté dans dans une base Access 2003 (via Access) une image PNG dans un champ de type OLE Object. Depuis access, j'arrive parfaitement à ouvrir le fichier.
Seulement maintenant, je dois récupérer cette image par le code. La galère commence. En effet quand j'utilise le datareader, il me retourne bien un byte[] sauf qu'il contient tout un tas d'information sur l'objet OLE (le type, la taille et j'en passe). J'aimerai savoir si d'une manière simple et rapide, il y a la possibilitée de connaitre la longueur de ces informations pour en extraire seulement mon image.
J'ai utilisé une méthode barbare pour retrouver cette taille (voir le code ci dessous)
Ce code est tout sauf conventionnel.
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 public static int GetOffset(byte[] p_byte) { int offset = 0; MemoryStream memStr = null; Bitmap bmp = null; while (bmp == null && offset < p_byte.Length) { try { memStr = new MemoryStream(); memStr.Write(p_byte, offset, p_byte.Length - offset); memStr.Flush(); bmp = new Bitmap(memStr); memStr.Dispose(); } catch (Exception) { offset += 1; } finally { if (memStr != null) { memStr.Close(); memStr.Dispose(); memStr = null; } } } return offset; }
Auriez vous une solution à mon problème.
Merci d'avance
Partager