Ich habe vorher über das Gegenteil von Bitwise AND (&) gefragt und Sie sagten mir, dass es unmöglich ist, umzukehren.Wie man diese Funktion umkehrt
Nun, das ist die Situation: Der Server sendet ein Bild, das mit der Funktion codiert ist, die ich umkehren will, dann ist es mit zlib codiert. Dieses
ist, wie ich das Bild vom Server erhalten:
UInt32[] image = new UInt32[200 * 64];
int imgIndex = 0;
byte[] imgdata = new byte[compressed];
byte[] imgdataout = new byte[uncompressed];
Array.Copy(data, 17, imgdata, 0, compressed);
imgdataout = zlib.Decompress(imgdata);
for (int h = 0; h < height; h++)
{
for (int w = 0; w < width; w++)
{
imgIndex = (int)((height - 1 - h) * width + w);
image[imgIndex] = 0xFF000000;
if (((1 << (Int32)(0xFF & (w & 0x80000007))) & imgdataout[((h * width + w) >> 3)]) > 0)
{
image[imgIndex] = 0xFFFFFFFF;
}
}
}
Breite, Höhe, Bildkomposition und dekomprimiert und Bilddruck Länge ist immer gleich.
Wenn diese Funktion fertig ist, legte ich Bild (UInt32 [] Array) in eine Bitmap und ich habe es.
Jetzt möchte ich den Server sein und senden, dass image.I zwei Dinge zu tun haben:
diese Funktion umkehren und es dann mit zlib komprimieren.
Wie kann ich diese Funktion umkehren, damit ich das Bild kodieren kann?
for (int h = 0; h < height; h++)
{
for (int w = 0; w < width; w++)
{
imgIndex = (int)((height - 1 - h) * width + w);
image[imgIndex] = 0xFF000000;
if (((1 << (Int32)(0xFF & (w & 0x80000007))) & imgdataout[((h * width + w) >> 3)]) > 0)
{
image[imgIndex] = 0xFFFFFFFF;
}
}
}
EDIT: Das Format ist 32bppRGB
"und du hast mir gesagt, dass es unmöglich ist umzukehren" ... Denkst du, dass SO eine Art Borg Kollektiv ist? :) – BobbyShaftoe
Ich denke immer noch nicht, dass Sie es umkehren können. & ist nicht umkehrbar wie du gesagt hast, auch wenn du & mit einer Konstante.Obwohl ich vielleicht falsch liege, könnte das Testen eines Bildes [i] == 0xFFFFFFFF bedeuten, dass es die Bedingung erfüllt hat, also können Sie vielleicht etwas daraus entnehmen. –
Diese Funktion konvertiert byte [] in rohe bitmapdata.Thats alles was sie tut –