Ich habe die letzten 4 Bits aller Pixel in einem PNG-Bild auf Null geändert. Warum wurde die Bildgröße auf weniger als die Hälfte reduziert? Ich glaube, dass png verlustfreie Komprimierung ist. Kann ich die eingebetteten Daten abrufen (hier habe ich 0000 zu allen Pixeln hinzugefügt, aber in Wirklichkeit muss ich andere Daten hinzufügen) Ich benutze vb 2015. Der Code, den ich verwendet habe, ist unten angehängt.Größe der PNG-Datei ist reduziert
Dim image1 Wie Bitmap = Neue Bitmap ("C: \ STEG \ originalimage.png")
For i As Integer = 0 To image1.Height - 1
For j As Integer = 0 To image1.Width - 1
Dim value As Color = image1.GetPixel(j, i)
Dim t1 As Byte = value.R
Dim t2 As Byte = value.G
Dim t3 As Byte = value.B
t1 = t1 And 240
t2 = t2 And 240
t3 = t3 And 240
image1.SetPixel(j, i, Color.FromArgb(255, t1, t2, t3))
Next
Next
image1.Save("C:\STEG\originalimageedited.png")
"Kann ich die eingebetteten Daten abrufen?" Warum müssen Sie uns das fragen? Warum hast du es nicht einfach selbst versucht? – jmcilhinney
Zusätzlich zu meiner Antwort: Je mehr Daten ein Komprimierungsalgorithmus wiederholen kann, desto mehr kann er die ursprünglichen Daten entfernen. Und je mehr Daten entfernt werden, desto kleiner ist die Größe der komprimierten Datei. –
Zum Beispiel, wenn Sie eine Datei haben, die völlig zufällige Daten enthält, können Sie nicht viel (wenn überhaupt) komprimieren, weil es nichts zu wiederholen gibt, es gibt kein Muster darin. –