le 10-11-2017 05:10 AM
Bonjour,
J'ai créer un programme LabView me permettant de contrôler un logiciel d'étiquette (NiceLabel) avec des nœuds .NET. Jusque là tout vas bien, j'arrive à imprimer etc.. Mais je voudrais utiliser une fonction GetLabelPreview, qui permettrait d'afficher une image de l'étiquette qui va être imprimée. On peut récupérer de cette fonction un refnum System.Object qui est soit de type System.Byte[], soit String.
On configure la fonction avec un noeud LabelPreviewSettings.
Si PrintToFile = TRUE alors System.Object sera une chaine de caractères avec le chemin de l'image crée. J'ai une erreur 1 quand j'essaye d'ouvrir cette image avec Ouvrir JPEG, alors que je peut l'ouvrir avec Windows.
Sinon la fonction retourne un Byte[], et je ne sais pas comment récupérer les valeur. J'ai essayé de caster le refnum, mais j'obtiens un tableau 1D avec 4 valeur.
Merci de votre aide
(Je joint une capture de l'aide de la fonction et des paramètres)
le 10-11-2017 05:49 AM
bonjour l'erreur 1 c'est LabVIEW: An input parameter is invalid.
Ronini a écrit :
Si PrintToFile = TRUE alors System.Object sera une chaine de caractères avec le chemin de l'image crée. J'ai une erreur 1 quand j'essaye d'ouvrir cette image avec Ouvrir JPEG, alors que je peut l'ouvrir avec Windows.
tu peux montrer le code utiliser pour ouvrir l'image.
Peux-tu vérifier le chemin d'entrée de la fonction utilisé ?
place un indicateur LabVIEW afin de vérifier que le chemin est valide.
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
10-11-2017 07:00 AM - modifié 10-11-2017 07:02 AM
Pour ouvrir l'image, j'utilise le vi Ouvir JPEG (ou tout autre format d'ailleurs) dans la palette Format Graphique.
J'avais fait des test dans un vi à part où j'allais chercher directement l'image avec une commande Chemin. J'arrive à ouvrir n'importe quelle image, sauf celle qui à été crée par la fonction GetLabelPreview. Je pense que la fonction n'enregistre pas bien l'Image.
Erreur Exacte: Code 1 dans Read PNG
Raisons possibles :
LabVIEW: Un paramètre d'entrée n'est pas valide. Par exemple, si l'entrée est un chemin, celui-ci contient peut-être un caractère qui n'est pas autorisé par le système d'exploitation, comme ? ou @.
Chaîne d'appel complète :
Read JPEG File.vi
TailleImage.vi
(Je mets en pièce jointe une image crée par cette fonction, que j'arrive pas à lire et le vi qui me permet d'ouvrir une image)
le 10-11-2017 07:30 AM
Je me demande si ton image est réellement au format JPEG et pas BMP.
j'ai testé en BMP est cela fonctionne
A+
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 10-11-2017 08:40 AM
En effet, je n'ai pas eu le réflexe de tester avec tout les types d'images, je croyais bêtement l'extension du fichier. Merci à toi
J'ai pu corriger ça, en changeant le format d'enregistrement de l'image.
Donc ça résous une partie du problème, je pourrais me contenter de ça, mais ça m'oblige a enregistrer une image pour ensuite la re afficher. Si j'arrivais à récupérer directement les données de l'image ça serait parfait ..
le 10-11-2017 10:00 AM
ok, je pense que la solution save to file puis open est déjà une avancée.
si tu veux de l'aide, pour directement afficher les données, il faut mettre un indicateur sur Byte[], exécuter la fonction qui retourne un Byte[], et transformer l'indicateur Byte[] en constante. Mettre la constante dans un VI, que tu vas poster en version 2014 de LabVIEW. Je regarderai si je vois comment faire la conversion. A+
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
10-12-2017 02:48 AM - modifié 10-12-2017 02:49 AM
En fait en sortie de la fonction c'est un refnum de type Byte[], ce 'est pas directement un tableau. Je n'arrive pas à récupérer ce tableau de données. Le seul tableau que j'ai réussi à avoir c'est en faisant un cast du refnum en tableau 1D(I8). J'obtiens un tableau avec trois valeurs qui changent à chaque exécution (que ce soit la même étiquette ou une autre), et une valeur qui elle est toujours à 0. de cette manière [85,62,0,3](Voir screenshot).
J'ai remarqué qu'après plusieurs exécutions, la première valeur est incrémentée de 1 à chaque itération et le refnum change aussi.