ich eine Leinwand in $gw.sw.sf.frame.c
geschaffen habe, wo $gw
ist ein Fenster der oberste Ebene sw
und sf
ist ein ScrolledWindow und ein ScrollableFrame aus dem BWidget Paket und c ist die Leinwand (tk::canvas
). In der Leinwand sind nur Text und Rechtecke mit einer Farbe gefüllt. Ich kann eine korrekte eps-Datei von der Leinwand erzeugen mit:TclTk zu bekommen Bild von der Leinwand
$can postscript -colormode color -file test.eps
Allerdings, wenn ich ::canvas::snap $can
zu verwenden, um versucht, ein Bild zu bekommen und dann in der Lage sein, eine PNG/BMP/TIFF/JPEG-Bilddatei speichern mit das Img Paket bekomme ich folgende Fehlermeldung:
Window ".graphresults1494146100.sw.sf.frame.c" cannot be transformed into a pixmap (possibly obscured?)
Window ".graphresults1494146100.sw.sf.frame.c" cannot be transformed into a pixmap (possibly obscured?)
while executing
"image create photo -data $can"
(procedure "::mTKs::savegraphres" line 3)
invoked from within
"::mTKs::savegraphres .graphresults1494146100.sw.sf.frame.c"
(menu invoke)
so sind die Fragen:
gibt es eine Möglichkeit, dies zu beheben, so kann ich :: Leinwand :: Snap ein d dann Img um die Bilddateien zu erzeugen?
Wenn nicht, gibt es eine Möglichkeit, die EPS-Datei mit nur TclTk-Code in eine Bilddatei zu konvertieren? Ich weiß, dass ich zu diesem Zweck Ghostscript oder ImageMagic verwenden kann, aber ich möchte, dass mein Programm nur TclTk verwendet.
Jeder andere Weg, um das Bild von der Leinwand zu bekommen ??
Nur für den Fall: Ich bin mit OS 10.12.4 TclTk 8.6 Img 1.4.6 Tklib 0,6 und BWidget 1.9.10
NEUE ZAHLEN
fand ich, dass das Problem mit dem Betriebssystem ist X-Version. Bei meiner Arbeit verwende ich 10.10.4 und hier ist der Code in der Lage, die Figur zu erstellen, aber nach dem Erstellen der Figur wird der Leinwandinhalt vollständig weiß. Ich denke, dass canvas :: snap die Stapelreihenfolge innerhalb des Fensters ändert, was zu einer scheinbar leeren Leinwand führt, ist das korrekt?
Außerdem habe ich den Rat von Donal Fellows genommen und die Leinwand direkt in .topelevelwindow.canvas erstellt und mit 10.10.4 canvas :: snap und Img das korrekte Bild erzeugt und der Fensterinhalt wird nicht verändert. Mit 10.12.4 habe ich den gleichen Fehler wie zuvor. Irgendeine Arbeit um diese?
Die Leinwand wird oben angezeigt, als ich versuchte, das Bild zu erzeugen und im Prinzip :: canvas :: snap kümmert sich darum, das Fenster mit der Leinwand nach oben zu heben. Das Problem liegt wahrscheinlich darin, dass Sie den komplexen Stapel von Widgets erwähnen, den ich verwende. Ich werde es mit einer einfachen Leinwand versuchen. Aus Ihrer Antwort sollte ich verstehen, dass es kein natives TclTk-Paket gibt, um von eps in ein anderes Bildformat zu konvertieren? – kbr85