Text in PhotoImage

Fragen zu Tkinter.
Antworten
-Matthias-

Mittwoch 19. November 2008, 10:21

Hallo,

kann mir jemand sagen ob, und wenn ja, wie es möglich ist, in einem PhotoImage Fenster einen Text zu schreiben?
BlackJack

Mittwoch 19. November 2008, 11:36

Mann kann auf einem `Canvas` sowohl Bilder als auch Texte platzieren.
Benutzeravatar
wuf
User
Beiträge: 1481
Registriert: Sonntag 8. Juni 2003, 09:50

Mittwoch 19. November 2008, 17:26

Hallo Matthias

Hier etwas zum ausprobieren und experimentieren:

Code: Alles auswählen

import Tkinter as tk

#~~ Bilddaten im BASE64-Format
IMAGE_MATTHIAS =\
"""
R0lGODlhMwAzAOf/AAICAQsBARQBAQcIChwCASMCAQwMFCsBARoJCQcSFhMQ
BSgFBxcMFCMJBAwSFTMDAiQKCyYJFToEAhgTFiwLCzMLATgJCTQLCykSDDwL
ARcZJUUKAywUEzsMFUMMACkXFEANEzkUCUMTAlIMAS8XKiwbJjcZFksVC0kY
B0YaFCgnKTkiFlMaBzolHEwhClMcFEsfIj4mITwqHEknF0cpJFgmBzQyNVgo
GGQpB1YrJUgyKzU3TksxNVsyC2YrF1Y1G1g3KUo4TDNET1Y4NGo3Cmg2F3A2
Bmk2Lmk4J2w7HXQ5HHQ6JVVINGlDKVJLU3RHF3lHGYY8MWxKNmpJQ3hIKHlJ
M1NRcGhSMoRLGoRJJ4NKOnBSSntUKYdXDntXOIpWGXVZR4hWKGtcZU5pc4hX
OJVYG4ZYRnhhPV1ihItbM1NtbpNbJ2dmaI9XTHFmUo1hK5RcN4piO3ZnWZdl
GHlnZYplRpplKKJeOJhmN4poWKFqGXFycpdoR5RqVKZqJ5tzHKRpSqZsOZhz
RJ5zOXR6jI50a6h2Gpl2VKh3KKl3OZd4Zad3R4+BXrF6K7N4Nah4VK90V3aJ
lKd5ZauDNLd8RrGIHql+bpWKcKeFZreILLmHN7eFSLCJUH6SrLeNL5CRj7iI
V7qFZsOJXcSNSa+Qc8iQNKuTisaMZpSdrceXRsmaOaOapciWVsiVZcOWdLeg
e9CWcNGeRdCeVc2jRrajidSlP8qdh7epltinSMuoacWniNioVtyqTdmoabOu
sdqtVtSqfOKtUtyzSuWpa8yxicq1mNa3eOyud+W4VtSxtOm5Uemwjdu5hua3
dda5mOu4aNC3wee3hNjBlKvM187Crua9k/bDXOrChNzKpunHm/PLb/fJea/a
5dHO1vjIl/nNievSqvvUpPjYmfXYqOjgr/jYtfzcnPPYzfzcpPzbq/zdsvjl
mPvlqPbluP3krPzltPzmvM3z9/rpyP3stP3svP7tw/3xu+/v7/3yw+7x9P73
yf/41fn39v746v39/f///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQB
CgD/ACwAAAAAMwAzAAAI/gDvBZigQweNGS1McAjx4cMKDA1oxJBBUUaMGRRj
TKzIsaLCBhxkmDDRAAGGDwLurSh2bly0XJwE8eEjSNChHnGyZYtmzBizasx6
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
"""

#~~ Erzeugt Hauptfenster
gui_window = tk.Tk()

#~~ Erzeugt Bildflaeche-Object
canvas = tk.Canvas(gui_window, bd=1, relief='raised', width=70, height=80,
    highlightthickness=0)
canvas.pack(pady=5)

#~~ Erzeugt Bilddaten im Tk-Format
#   Bild aus BASE64-Daten
tk_img_matthias = tk.PhotoImage(data=IMAGE_MATTHIAS)
#   Bild aus Datei
#tk_img_matthias = tk.PhotoImage(file="im_matthias.gif")

#~~ Erzeugt Bild
image_id = canvas.create_image(10, 10, image=tk_img_matthias, anchor='nw')

#~~ Erzeugt Name
#   Ueber dem Bild
name_id = canvas.create_text(13, 10, text="Matthias", anchor='nw', fill='white')
#   unterhal Bild
name_id = canvas.create_text(10, 65, text="Matthias", anchor='nw')

gui_window.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Konrad Wenzel
User
Beiträge: 15
Registriert: Freitag 3. Oktober 2008, 17:19

Donnerstag 20. November 2008, 17:34

Hallo Mathias,
muß es wirklich im PhotoImage sein ?
vielleicht so (eigene Zeichen, z.B. alpha, kann man auf karierten Papier entwerfen
oder bei einem Nadell-Drucker o.ä. mit Lupe bewaffnet abgucken):

Code: Alles auswählen

#  schrg.py  Pixel-Schrift fuer Grafik-Bildschirm 
#   Demo Pixelgrafik, Canvas
#
#	wn		NOV2008 --------------------------------------------------|

import Tkinter as tk

# Bildgroesse,  VGA  maximale Pixel in Y und X -Richtung
YYMX = 480
YXMX = 640
#               Codierter ASCII-Code-Bereich
YAIA = 32
YAIE = 90

# Schriftfont nach Art Grafik-Nadel-Druck: pro Spalte eine Zahl zwischen
#   0 und 127 fuer 7  Nadeln=Punkte  uebereinander.
#   Zeichen im 5*7-Raster, also pro Zeichen 5 Zahlen.
#   Speicherung nach dem ASCII-Code fuer alle Zeichen im Bereich 32..90
#   des ASCII-Codes 
#   fuer praktische Anwendung sollte eine Klasse gebildet werden und 
#   Schriftfarbe wie die Bildgroesse variabel sein, Zeichenanzahl erweitern,
#   groessere Schrift: Rechtecke anstelle Punkte setzen

schrf = (
   0, 0, 0,  0,  0,  0, 0, 95,  0, 0,  3, 3, 0,  3,  3,  20,127,20,127,20,
   36,42,127,42,18,  35,19, 8,100,98,  54,73,86,32, 80,  0, 11, 7, 0,  0,
   0, 0, 62, 65, 0,  0 ,65, 62, 0, 0,  8,42, 28, 42, 8,  8, 8, 62, 8,  8,
   0, 88,56, 0,  0,  8,  8, 8, 8,  8,  0, 96,96, 0,  0,  32, 16, 8, 4, 2,
   62, 81,73,69,62,  0, 66,127,64, 0,  98, 81,73,73,70,  34, 65,73,73,54,
   24,20,18,127,16,  39, 69,69,69,57,  60, 74,73,73,48,  1,113,  9, 5, 3,
   54, 73,73,73,54,  6, 73,73,41, 30,  0, 54,54, 0,  0,  0, 91,59, 0,  0,
   0,  8,20,34, 65,  20, 20,20,20,20,  65, 34,20, 8, 0,  2,  1,81, 9,  6,
   62, 65,93,85,30,  126,9,9, 9, 126,  127,73,73,73,54,  62,65,65,65, 34,
   127,65,65,65,62,  127,73,73,73,65,  127, 9, 9, 9, 1,  62,65,65,81,114,
   127, 8, 8,8,127,  0,65,127,65,  0,  32,64,64,64, 63,  127, 8,20,34,65,
   127,64,64,64,64,  127, 2,12,2,127,  127, 4,8,16,127,  62,65,65,65, 62,
   127, 9, 9, 9, 6,  62,65,81,33, 94,  127, 9,25,41,70,  38,73,73,73, 50,
   1, 1,127, 1,  1,  63,64,64,64, 63,  7,24,96, 24,  7,  127,32,16,32,127,
   99,20, 8, 20,99,  3, 4,120,  4, 3,  97,81,73, 69,67)

#   Zeile    Zeichen      ASCCI-CODE
#       1  Leerz bis #     32 bis 35
#       2      $     '     36     39
#       3      (     +     40     43
#       4      ,     /     44     47
#       5      0     3     48     51
#       6      4     7     52     55
#       7      8     ;     56     59
#       8      <     ?     60     63
#       9      @     C     64     67
#      10      D     G     68     71
#      11      H     K     72     75
#      12      L     O     76     79
#      13      P     S     80     83
#      14      T     W     84     87
#      15      X     Z     88     90

def schrkw(schrp,  schrx,  schry ):

# Parameter: schriftp.- eine Zeichenkette aus Zeichen
#      im Bereich YAIA...YAIE, die ausgegeben werden soll

#      schrx, schry  Schrift-Beginn-Koordinaten x und y

# Schriftgroesse: Minimal, 1 Pixel pro Nadelpunkt  (k)leinste
# Schriftrichtung: nur (w)aagerecht

#   Rueckgabewert  rueck
#   Fehlermeldung: 0 - in Ordnung
#   (grob)	  1 - Parameter falsch -> Ersatzloesung
#	    	  2 - Parameter nicht ausfuehrbar -> Abbruch


   rueck=0; lang=0; i=0; k=0; k1=0;          # (das war mal C-Code)
   zch=0; zchs=0;                            # Zeichen, Zeichenspalte

   if(schrx < 0 or schrx > YXMX or schry < 0 or schry > YYMX):
     return 2 
# gegen falsche Koordinaten grobe Sicherung, YXMX,YXMX ggf. anpassen
# ............................................ABBRUCH ..............

   lang = len(schrp);
   for i in range(-1, 8*lang +1):   # Alle Pixel bg Schrift hellgrau 
      for k in range(-1, 8,):
          b.put('#ddd',(schrx+i, schry+k))

   for i in range(lang):      # ueber alle Zeichen im String schrp
       zch = ord(schrp[i]);

       if(zch < 32 or zch > 90):
           zch = 46;    rueck = 1;

       for k in range(5):                   # 5 Spalten / Zeichen
           zchs = schrf[(zch - 32) * 5 + k ]
           for ko in range(7):                #  7 Nadeln / Spalte
               if zchs % 2:
                  b.put('#000',(schrx+8*i+k,schry+ko))
               zchs = zchs/2                 # naechster Nadelpunkt

   return rueck

# -------------------------------------------------------------------

fr=tk.Tk()
b=tk.PhotoImage(width=139,height=99)
l=tk.Label(fr,image=b)

b.put('#aa0000',(30,10,80,80))
b.put('#00aa00',(13,23,85,33))
schrkw('SO SIEHT ES AUS',11,11)
# 2 Rechtecke und Schrift auf b in l
c=tk.Canvas(fr,width=138,height=38)
c.pack()
l.pack()
c.create_oval(3,3,86,36,fill='#333388')
# ein Oval oben rechts auf c

fr.mainloop()

-- wn --
Benutzeravatar
wuf
User
Beiträge: 1481
Registriert: Sonntag 8. Juni 2003, 09:50

Sonntag 23. November 2008, 00:39

Hallo Konrad Wenzel

Da ich nicht ein routinierter C-Programmierer bin investierte ich einiges an Zeit dein Code-Snippet zu analysieren. Du verwendest das Tkinter PhotoImage-Objekt wie ich es bis jetzt noch nie erfahren habe. Da mich solche Neuigkeiten immer interessieren schaute ich mir dein Code genauer an. Dies brachte mich auf die Idee Versuche durchzuführen um den Text in Tkinter-Widgets vertikal darzustellen. Hierfür habe ich mir das Recht genommen deine Tabelle für den 5*7Raster-Punkt Zeichensatz zu übernehmen. Bei meinen Versuchen entstand ein eigenes (Pythonisiertes) Code-Snippet, welches ich im Subforum für 'Code-Snippets' gepostet habe.

Siehe:
http://www.python-forum.de/topic-16793.html

Noch eine Frage? Hast du eventuell noch die fehlenden Zeichen des 5*7-Raster-Zeichensatzes (kleine Buchstaben usw)?
Wenn dies so wäre könntest du diese hier vielleicht noch posten.

Danke für deinen interessanten Beitrag.

Gruss wuf :wink:
Take it easy Mates!
Konrad Wenzel
User
Beiträge: 15
Registriert: Freitag 3. Oktober 2008, 17:19

Dienstag 25. November 2008, 12:27

Hallo wuf,

dein Snipet gefällt mir.

Anbei noch Kleinbuchstaben und weitere zeichen

wünsche Dir viel Vergnügen damit

Code: Alles auswählen

"""
 ... ... ... ... ...               ASCII
   0   0 127  65  65  [ Klammer       91
   2   4   8  16  32    Back Slash    92
  65  65 127   0   0  ] Klammer       93
   4   2 127   2   4  ^ Control       94
  64  64  64  64  64  -               95  ( 0 64 64 64 0)
   0   7  11   0   0  `               96

  56  68  68  60  64    a             97
 127  72  68  68  56    b
  56  68  68  68  32    c
  56  68  68  72 127    d            100
  56  84  84  84   8    e
   8 126   9   2   0    f
   8  20  84  84  60    g
 127   8   4  41  20    h
   0  68 125  64   0    i
  32  64  64  61   0    j
   0 127  16  40  68    k
   0  65 127  64   0    l
 120   4  24   4 120    m
 124   8   4   4 120    n            110
  56  68  68  68  56    o
 124  20  36  36  24    p
  24  36  20 124  64    q
   0 124   8   4   4    r
  72  84  84  84  32    s
   4  62  64  32   0    t
  60  64  64  32 124    u
  28  32  64  32  28    v
  60  64  48  64  60    w
  68  40  16  40  68    x            120
   4  72  48   8   4    y
  68 100  84  76  68    z

   8 124  41  24   2    {            123
   0   0 127   0   0    |
   8   8  42  28   8    }
  65  99  85  73  99
 127   8   8   8   8         T-liegend
   0 127  62  28   8         Dreieck nach re
 127 127 127 127 127         Rechteck
  62 127 127 127  62         dto rund
   7   7   7   7   7         dto klein ob
 112 112 112 112 112         dto klein ut
   8  28  62 127   0         Dreieck nach li

  28  68  68  28  68         alpha
 126  21  37  37  26         beta
  96  88  70  88  96         Delta groß
  56  68  68  60   4         sigma klein
  65  99  85  73  99         Summenz.=Sigma groß
  64  60  32  32  28         mue
  98  20   8  16  96         lambda

35 Pixel reichen nicht in jedem Falle, um Zeichen
darzustellen
"""
[/code]
-- wn --
BlackJack

Dienstag 25. November 2008, 17:14

Zeichen gibt's doch schon fertig in rauhen Mengen: http://unifoundry.com/unifont.html

Code der das "Hex-Format" lädt und pixelt: http://paste.pocoo.org/show/92525/

Ausgabe von der `test()`-Funktion mit ein bisschen Griechisch und Chinesisch:

Bild
Benutzeravatar
wuf
User
Beiträge: 1481
Registriert: Sonntag 8. Juni 2003, 09:50

Dienstag 25. November 2008, 20:43

Hallo Konrad Wenzel

Noch vielen Dank für die restlichen Zeichen. Hoffentlich hattest du nicht zuviel Arbeit damit. Ich machte noch kleinere Korrekturen bei folgenden Zeichen:
h , ^, { , }
Ich versuchte noch eigene Zeichen zu kreieren. Nur so kann man erfahren was es heisst einen ganzen Zeichensatz zu erstellen. Etwa so wie in Gutenbergs Zeiten. :lol:

Ich werden mein gepostete Code-Snippet noch mit einem Teil dieser Zeichen ergänzen.

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
wuf
User
Beiträge: 1481
Registriert: Sonntag 8. Juni 2003, 09:50

Dienstag 25. November 2008, 21:14

Hallo BlackJack

Besten Dank für dein interessantes Posting!

Bild

Ich habe einmal die Seite deines Links aufgesucht. Werde den Inhalt nochtetwas später näher anschauen. Für mich war bis jetzt das Wort 'Unicode' = 'Horror'. Aber man wird dauernd damit konfrontiert. Habe die Hexdatei unifont-5.1.20080820.hex für den Test deines super Code-Snippet runtergeladen. Die Datei hat eine beachtliche Grösse von ca. 3.7MB's. Es funktioniert! Einzig störend ist die Ladezeit der Datei beim Start. des Snippets die sich auf ca. 6 Sekunden beläuft. Ist es irgendwie möglich nur das oder die Code-Segmente der Datei zu laden, welche auch wirklich benötigt werden? Wuste gar nicht, dass deine Tastatur eine griechische Erweiterung hat. :D . Bei den asiatischen Zeichen sieht es im Skript ziemlich ungemütlich aus. Da frage ich mich ob es nicht besser wäre zuerst das Schreiben der einschlägige Sprache zu erlernen Hi.

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
wuf
User
Beiträge: 1481
Registriert: Sonntag 8. Juni 2003, 09:50

Mittwoch 26. November 2008, 18:36

Hi BlackJack

Dein Code-Snippet hat mich befähigt die Schrift mittels Unifont vertikal in ein PhotoImage zu schreiben.

Bild

Die Ladezeit der Unifont-Hex-Datei reduzierte ich indem ich nur den Zeilenbereich U+0000...U+00FF wie auf der Unifont-Seite gezeigt für die Darstellung z.B. von 'Basic-Latin' plus 'Basic-Latin Suplement' Schriften, importiere. Diese Bereich liegt zum Glück am Anfang der 65536 Zeilen langen Unifont-Datei.

Gruss wuf :wink:
Take it easy Mates!
BlackJack

Mittwoch 26. November 2008, 20:41

Man müsste wahrscheinlich das Hex-Format in etwas anderes umwandeln. Am besten so, dass einzelne Zeichenbitmaps bei Bedarf geladen werden können. Denn man benötigt in der Regel ja nur einen Bruchteil davon.
Antworten