Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Valeur tableau d'un Refnum

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)

Tout télécharger
0 Compliments
Message 1 sur 7
3 150 Visites

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.

banniere Luc Livre NXG Champion.png

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

Message 2 sur 7
3 139 Visites

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)

Tout télécharger
0 Compliments
Message 3 sur 7
3 126 Visites

Je me demande si ton image est réellement au format JPEG et pas BMP.

j'ai testé en BMP est cela fonctionne

Test read file bmp.png

A+

banniere Luc Livre NXG Champion.png

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

Message 4 sur 7
3 112 Visites

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 ..

0 Compliments
Message 5 sur 7
3 105 Visites

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+

banniere Luc Livre NXG Champion.png

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

0 Compliments
Message 6 sur 7
3 083 Visites

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.

0 Compliments
Message 7 sur 7
3 065 Visites