(J'ai fait trois publications la semaine dernière sur SO concernant un projet Java sur lequel je travaille, je me sens coupable, mais quelles sont vos réponses?)Accéder aux informations sur la mémoire bitmap en utilisant les octets
Voici un morceau de code en C#:
Bitmap bitmap = ...
int dstStride = bitmap.Stride;
byte* bdst = (byte*)bitmap.Scan0;
Je veux faire un algorithme équivalent en Java. Je commence à penser que c'est impossible, basé sur other, similar questions.
Je peux réellement reproduire les informations de foulée de mon bitmap, mais bien sûr, que byte*
est presque impossible à reproduire. Ce qui se passe est plus tard qu'il ya une boucle for
qui manipule l'image bitmap, à la:
bdst[x * 3 + y * dstStride + 2] = (byte)(alpha * bsrc[dx * 3 + L * srcStride + 2]);
(x & y sont itérateurs dans une boucle)
Naturellement, je suis incapable de faire simplement BDST un octet tableau parce que cela n'a pas de sens. According to this totally awesome article, Scan0 est "[t] l'adresse dans la mémoire du tableau de données fixe."
Et à en juger par le post SO ci-dessus, cela n'est pas possible en Java. Confirmer/refuser?
Vous ne savez pas pourquoi vous ne pouvez pas traiter bdst comme un tableau d'octets? C'est exactement ce que c'est. La classe C# Bitmap est un wrapper sur un objet bitmap natif qui représente évidemment les données d'image interne comme pointeur vers l'emplacement de la première mémoire. – VinayC