J'essaie de créer une image à partir d'un tableau d'octets. Le tableau d'octets est créé par un scanner d'empreintes digitales (cf. méthode CaptureFrame). fwidth est 256 et fheight est 255.Image.FromStream: Paramètre non valide
Quand je lance le code ci-dessous, je reçois
System.ArgumentException: Paramètre non valide.
Dim fWidth As Short
Dim fHeight As Short
DFRProxy.DFRProxy.GetImageDimensions(fWidth, fHeight)
Dim imgBufLength As Integer = CInt(fWidth) * fHeight
Dim finger(imgBufLength) As Byte
Dim startCap As Short = DFRProxy.DFRProxy.StartCapture(0)
Dim capFrame As Short = DFRProxy.DFRProxy.CaptureFrame(0, finger, 0)
Using ms As New IO.MemoryStream(finger)
thisImage = Image.FromStream(ms)
End Using
l'erreur se produit à la ligne
thisImage = Image.FromStream(ms)
Le tableau d'octets a 65280 éléments. J'ai passé en revue plusieurs publications StackOverflow similaires, mais rien n'a fonctionné. J'ai essayé de définir les paramètres useEmbeddedColorManagement
et validateImageData
pour la méthode FromStream à False et True, mais cela ne résout pas le problème.
Avez-vous des suggestions sur la façon de corriger le ArgumentException
?
excellent. Merci. C'est une image en niveaux de gris. Lorsque j'utilise la méthode SetPixel, comment puis-je convertir la valeur en niveaux de gris (0-255) en une couleur système? – blueshift
Si la valeur est v, la nouvelle couleur (v, v, v) devrait faire l'affaire (crée une couleur avec des composants RVB égaux, ce qui devrait être gris) – antlersoft
Cela l'a fait. Merci pour l'excellente réponse. Cela m'a rendu fou pendant des heures. – blueshift