2017-12-31 118 views
3

Glücklich für das neue Jahr, alle!Bild exportieren und importieren Inkohärenz in Mathematica

Ich führe den folgenden Code in Mathematica 11, aber ich kann die Ausgabe nicht verstehen. b und b1 sind gleich groß und sehen in Zeichen gleich aus, aber Mathematica betrachtet sie unterschiedlich. Können Sie mir einen Rat geben, warum das passiert?

a = Import["ExampleData/rose.gif"]; 
b = ExportString[a, "PNG"]; 
c = ImportString[b, "PNG"]; 
Export["D:/flower.txt", b]; 
b1 = Import["D:/flower.txt"]; 
ByteCount /@ {b, b1} 
b == b1 

Mit freundlichen Grüßen!

+0

Ich vermute, es gibt Integer-Float (und zurück) Konvertierungen hier mit einigen Rundungsfehler. – agentp

Antwort

4

Um in Text zu exportieren, benötigen Sie b in String-Form. Konvertieren in PNG und Base64 funktioniert.

a = Import["ExampleData/rose.gif"]; 
b = ExportString[a, {"Base64", "PNG"}] 
c = ImportString[b, {"Base64", "PNG"}] 
Export["D:/flower.txt", b, "String"]; 
b1 = Import["D:/flower.txt", "String"]; 
ByteCount /@ {b, b1} 
b == b1 
{41016, 41016} 
True 

guten Rutsch ins Neue Jahr!

+0

Beeindruckend! Ich danke dir sehr!!! – user1724270

Verwandte Themen