0

素敵な色のグラデーションとテキストで小さなグラフィックを作ろうとしています

色のグラデーションは正常に機能するようになりました (テストのみなのでコードはまだ面倒です) が、テキストは表示されません

誰かが私のコードの何が問題なのか教えてもらえますか?

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 24 13:31:18 2012

@author: ksr
"""
import os
import scipy
import pickle
import shutil
import matplotlib.pyplot as plt
from os.path import join as opj
from os import getcwd as cwd
from os import listdir as ld
import wx

def dec2hex(n):
"""return the hexadecimal string representation of integer n"""
return "%X" % n

def hex2dec(s):
    """return the integer value of a hexadecimal string s"""
    return int(s, 16)

def main(text):

    app         = wx.PySimpleApp()

    # Bitmap und DC (Device Context) erstellen
    bitmap      = wx.EmptyBitmap(width = 500, height = 500)
    dc          = wx.MemoryDC(bitmap) # Dieser DC zeichnet nur im Speicher

    # Hintergrund gelb ausmalen
    dc.SetBackground(wx.Brush('#FFFFFF', wx.SOLID))
    dc.Clear()

    # GraphicsContext erstellen (damit sehen die Bilder besser aus)
    gc = wx.GraphicsContext_Create(dc)

    x = 0
    y = 0
    far = 0
    z = 0
    for i in range(0,2001):

        if z%5 == 0 and i < 1000:
            far += 1
            z = 0
        elif z%5 == 0 and i > 1000:
            far -= 1
            z = 0
        farbe = dec2hex(far)


        # Grünen Stift zuweisen
        pen = wx.Pen("#%s0000"%(str(farbe.rjust(2,'0'))), 2, wx.SOLID)#,str(farbe.rjust(2,'0'))
        gc.SetPen(pen)

        # Zwei horizontale Linien zeichnen
        gc.DrawLines(((x, y), (256, 256)))

        print x,y,farbe.rjust(2,'0'),i

        if x < 500 and y == 0:
            x+=1

        elif x == 500 and y < 500: 
            y+=1

        elif y == 500 and x > 0:
            x-=1

        elif x == 0 and y > 0:
            y-=1
        z+=1    

    gc.DrawText('Hello',100,100)    

    # Bitmap vom DC abtrennen und als PNG speichern
    dc.SelectObject(wx.NullBitmap)
    bitmap.SaveFile("new_image.png", wx.BITMAP_TYPE_PNG)


if __name__ == "__main__":
    main()
4

1 に答える 1

0

コードを実行すると、Font が定義されていないためエラーが発生しました。同じ問題が発生するかどうかはわかりませんが、コードが正常に機能する前にSetFontステートメントを追加することで.gc.SetFont(wx.Font(22, wx.SWISS, wx.NORMAL, wx.BOLD))DrawText

ちなみに、300, 300「Hello」テキストを描画するための座標として、100, 100黒地に少し黒く、判読できないようにしました。

于 2012-04-27T09:45:58.590 に答える