[Résolu] IOS bug - Zxing

Toutes les questions sur le développement Mobile, y compris la partie script.
Molgy
Messages : 26
Inscription : 12 Mai 2016 04:01

[Résolu] IOS bug - Zxing

Message par Molgy » 24 Nov 2016 17:40

Hello,

Petit problème actuellement sur Iphone,

J'utilise la WebCamTexture pour lire un QRCode avec ZXing

ZXing utilise la texture pour détecter le QRCode avec un camTexture.GetPixels32() pour le transformer en Color32[]

SOUCIS : Sur Iphone, la texture est en mirror... donc le tableau Color32[] est inversé... Et donc Zxing ne me lit pas correctement mon QRCode...

Sur internet la seule solution qu'on trouve c'est "Met le Scale à -1", ça résout le problème au niveau affichage, mais ça ne changera pas le Color32[].

Est-ce qu'il y aurait une méthode qui me permettrait de flip la WebCamTexture et non l'objet sur lequel elle est affichée à fin d'obtenir le bon Color32[] et de pouvoir lire mon QRCode.
Réorganiser le tableau à la main est exclu puisque se serait bien trop lourd pour un Android/Iphone.

Merci d'avance,

Molgy
Dernière édition par Molgy le 07 Déc 2016 10:40, édité 1 fois.
T'entraîner tu devras, :!:
Tester tu feras, :?:
Réussite tu auras. 8-)
-- Dayo ! :merci:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: WebCamTexture Flip et QRCode Reader

Message par boubouk50 » 24 Nov 2016 18:03

Je suppose que tu utilises:

Code : Tout sélectionner

Color32[] pixels = webcamtexture.GetPixels32();
pour récupérer le tableau. Tu récupères donc le flux directement et je ne pense pas qu'il puisse être changé. Par exemple, la doc sur VideoVerticallyMirrored te dit d'utiliser le scale d'ailleurs. Tu peux aussi inverser le uvRect de la RawImage, à voir si le GetPixels32 () sur la RawImage t'auras inverser les UVs... Teste, mais j'en doute.
J'ai eu à faire un petit travail similaire pour faire une rotation de 90 sur le flux, ça prenait 2 à 3 secondes sur une Galaxy Tab Pro.

Code : Tout sélectionner

public void ChangeImageOrientation () {
	Color32[] pixels = bgdTexture.GetPixels32();
	pixels = RotateMatrix(pixels, bgdTexture.width, bgdTexture.height);
	...
}
static Color32[] RotateMatrix(Color32[] matrix, int _width, int _height) {
	Color32[] ret = new Color32[matrix.Length];
	int counter = 0;
	for (int j = _width-1; j >= 0; j--) {
		for (int i = 0; i < _height; i++) {
			ret[counter] = matrix[i * _width + j];
			counter++;
		}
	}
	return ret;
}
Je ne vois pas comment tu pourrais modifier les données de la texture avant qu'elles n'arrivent. En tout cas, dans la classe WebCamTexture, il n'y a rien pour cela.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Molgy
Messages : 26
Inscription : 12 Mai 2016 04:01

Re: WebCamTexture Flip et QRCode Reader

Message par Molgy » 29 Nov 2016 12:58

Hello et merci pour ta réponse,

Je n'ai malheureusement pas accès à un mac pour faire mes tests actuellement, mais dès que j'en obtiens un je vais essayer de réorganiser le color32[], je vous tiens au courant si je trouve une solution.

Molgy
T'entraîner tu devras, :!:
Tester tu feras, :?:
Réussite tu auras. 8-)
-- Dayo ! :merci:

Molgy
Messages : 26
Inscription : 12 Mai 2016 04:01

Re: WebCamTexture Flip et QRCode Reader

Message par Molgy » 07 Déc 2016 10:39

Hello,

En fait j'avais mal identifier mon problème, le soucis était du au fameux bug de la webcamTexture de Unity sur IOS, il me renvoyait un 16x16 pour la texture et du coup, impossible de lire le QRCode.

Pour ceux qui check ce sujet voici les pistes de résolutions :

viewtopic.php?t=12475

https://issuetracker.unity3d.com/issues ... returns-16

Voilà, une bonne journée !

Molgy
T'entraîner tu devras, :!:
Tester tu feras, :?:
Réussite tu auras. 8-)
-- Dayo ! :merci:

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »