Seite 1 von 1

Bild direkt in Python Script einbauen

Verfasst: Dienstag 3. Juni 2008, 15:23
von Requester
Ich hab jetzt meiner Startdatei ein Splash Screen hinzugefügt mit wx.splashscreen.

Allerdings gibt man dort ja einen Pfad an. Ich habe in anderen Programmen gesehen das man auch das Bild als "Code" direkt in die Python Datei einbinden kann, so bräuchte ich dann kein Zusätzliches Bild im selben Ordner meiner Datei liegen haben.

Code: Alles auswählen

class MySplashScreen(wx.SplashScreen):
    """
Create a splash screen widget.
    """
    def __init__(self, parent=None):
        aBitmap = wx.Image(name = "bild.jpg").ConvertToBitmap()
        splashStyle = wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT
        splashDuration = 5000 # milliseconds

        wx.SplashScreen.__init__(self, aBitmap, splashStyle,
                                 splashDuration, parent)
        wx.Yield()
Damit lese ich ja die Bild Datei, kann mir jemand sagen wie ich an den "Code" komme den ich dann anstatt der Datei dort eingeben kann?

Ich weiß leider nicht wie das genau heißt, sowas hier meine ich:

Code: Alles auswählen

def bildTest():
    return \
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0f\x08\x06\
\x00\x00\x00\xedsO/\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
\x01\xb0IDAT(\x91\x9d\x93AK\x1bQ\x10\xc7\x7f\xef\xa5\x17o\xee\xc1\xb8\xf4"\
\x98\xc6\xf4\xa6T<$\xa5\xde\xfc\x00\xb6\xd2J\x14$mO5\x82\xe0\x07\xf0\x13x\
\x10M\n\x1aP\x90\xe6 \x08\xa2&\x88\xc1`\x0f\xdd\xb8\xb4YvK[Z\xb6Y\xf1\xa6\'\
\xc9\xa1W_O\xbb\xecjZ\xc4\x81\xc7\xf0f\xfe\xf3\x9b\x99\x07\x0f!c\xf8\'?7\xaf\
\xde\xafo\xaap,\x9cs]\xf7VN\x12\xb2\xb8\x94|\xffj\xe38\x8e\n\xc7?\x19\r\x050\
\x90z,\xb8a\x11\xc0\xe2\xca\xb2\x88K\xc9\xdaZ)"*\x7f(\xdf\xac\xeb\x0c\xf0-\
\x95JR\xab\xd5\x14@\xb5RQ\x00\xaf&\'\xef\x06X\\Y\x16Wn\x8b\xdd\xdd=<\xefLU\
\xaa\x87\x00\x8c>{zk|\x80\x07\x9d\x82Z2\xc1H"\xc1\xc1\xc1\xfe?G\xff\xef\nWn\
\x8b\x8b\xcb\x0b\xf2\xb3\xef\xee\x07\xd0\x92\t\xf4^\x9d\xd5B\x91\xec\xcc\x9b\
\xfbM\xf0\xf9\xf0\x88\xa1\xc1A~}k\x12\x97\x1de\x00\x08!c\x00|\xa9\xd7\x95W\
\xda\x02 m\xd842C\xbc,o\x88\xedlN\xf9w\x80G\x0by\x9e\x0c\x0f\x07\x0f*\xfd\
\xe2\xde\xd7\x0bH\xef\x9c\xb6\xe5\x04\xc2\xb0o[\x0e\xd2;\xa7\xe7\xc5[\xacfSE\
\x00^i\x0bS\xd7\x988\xad\x0b5\xfd\x1c \xe8\xe2\xfb\x87\xb39&N\xeb\xc2\xd45~/\
\xadF\xdf m\xd8\\\xf7\xf7\x01\xd0\xfd\xa3\x85\xa9k\x91=M]\xe3O\xc3\x02\xe0\
\xba\xbf\x8f\xb4aG\x01\xa6\xae\xd1\xb6\x1c\xfc}\xbb\xa6\xc6#\x80\xae\xa9q\
\xd2\x86\xcdv6\xa7\xda\x96\x13m d\x8c\x9f\xc7\'j\'3\xa6v2c\xaaZ(v\xfc\x8d\
\xd5B1\xd04O>\x06\x9a\xbfO\xcc\xa84\xa1\x9d\xc6\x7f\x00\x00\x00\x00IEND\xaeB\
`\x82' 

Verfasst: Dienstag 3. Juni 2008, 16:02
von BlackVivi
O__O Wozu? Im Notfall zeichnest du mit PIL ein Bildobjekt und zeichnest dsa ein ._. Aber Bilder wie einen Blop im Quellcode zu speichern ist schon fei heftig oo

Verfasst: Dienstag 3. Juni 2008, 16:04
von Requester
BlackVivi hat geschrieben:O__O Wozu? Im Notfall zeichnest du mit PIL ein Bildobjekt und zeichnest dsa ein ._. Aber Bilder wie einen Blop im Quellcode zu speichern ist schon fei heftig oo
Naja, das Bild ist nicht besonders groß. Ich könnte es auch in einer anderen Datei speichern und die dann importieren. Ich möchte nur gerne wissen wie man an diesen Quellcode ran kommt.

Re: Bild direkt in Python Script einbauen

Verfasst: Dienstag 3. Juni 2008, 16:23
von gerold
Requester hat geschrieben:Ich habe in anderen Programmen gesehen das man auch das Bild als "Code" direkt in die Python Datei einbinden kann, so bräuchte ich dann kein Zusätzliches Bild im selben Ordner meiner Datei liegen haben.
Hallo Requester!

http://www.python-forum.de/post-98105.html#98105

mfg
Gerold
:-)

Re: Bild direkt in Python Script einbauen

Verfasst: Dienstag 3. Juni 2008, 16:59
von Requester
gerold hat geschrieben:
Requester hat geschrieben:Ich habe in anderen Programmen gesehen das man auch das Bild als "Code" direkt in die Python Datei einbinden kann, so bräuchte ich dann kein Zusätzliches Bild im selben Ordner meiner Datei liegen haben.
Hallo Requester!

http://www.python-forum.de/post-98105.html#98105

mfg
Gerold
:-)
Danke, genau sowas hab ich gesucht. ;)

Verfasst: Dienstag 3. Juni 2008, 20:12
von Requester
Ok, ich habs hinbekommen, jetzt hab ich da sowas:

Code: Alles auswählen

# ***************** Catalog starts here *******************

catalog = {}
index = []

class ImageClass: pass

#----------------------------------------------------------------------
def getTestPicData():
    return zlib.decompress(
'x\xda4\x9a{<\x93\xef\xff\xc7\xe7<\xe5\xb0QB\x8e3E\xc9\xb9\x1crn\xce\xc7\x1c\
\x12r\xaa(\xe4|>\x9f3%\xa7\x96\xf3!\x15\n\xa30\xa7\x99s\x11\x93\xb4\xd8\'\
\xb3-\t\xb1l1\x0cs\xf8\xf9\xfe\xf1\xbb\xff\xb8\xef\xfb\xbf\xebq]\xd7\xfbz\
\xbe^\xaf\xeb\xf1\xce\xb6\xb31\xe5=%z\n\x00\x00\xf0\x9a\x9b\xc1\xec\x01\x00\
\x96\xfc\x93\xff' )

def getTestPicBitmap():
    return BitmapFromImage(getTestPicImage())

def getTestPicImage():
    stream = cStringIO.StringIO(getTestPicData())
    return ImageFromStream(stream)

index.append('TestPic')
catalog['TestPic'] = ImageClass()
catalog['TestPic'].getData = getTestPicData
catalog['TestPic'].getImage = getTestPicImage
catalog['TestPic'].getBitmap = getTestPicBitmap
Mir ist allerdings jetzt nicht ganz klar, wie ich das hier in mein obiges Script einbauen kann. Muss da irgendwas zusätzlich importiert werden damit ich das hier, anstatt den Pfad des Bildes, wie ich das oben gemacht habe verwenden kann?

Verfasst: Mittwoch 4. Juni 2008, 12:33
von HWK
Ungetestet:

Code: Alles auswählen

wx.SplashScreen.__init__(self, getTestPicBitmap(), splashStyle, splashDuration, parent)
MfG
HWK

Verfasst: Mittwoch 4. Juni 2008, 14:29
von Requester
HWK hat geschrieben:Ungetestet:

Code: Alles auswählen

wx.SplashScreen.__init__(self, getTestPicBitmap(), splashStyle, splashDuration, parent)
MfG
HWK
Stimmt, klappt. Ich hatte es mit getTestPicData() versucht, aber das ging natürlich nicht, es muss ja erst zur Bitmap umgewandelt werden. Dank dir!

Re: Bild direkt in Python Script einbauen

Verfasst: Donnerstag 5. Juni 2008, 07:35
von skypa
Requester hat geschrieben: Ich weiß leider nicht wie das genau heißt, sowas hier meine ich:

'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0f\x08\x06\
\x00\x00\x00\xedsO/\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
\x01\xb0IDAT(\x91\x9d\x93AK\x1bQ\x10\xc7\x7f\xef\xa5\x17o\xee\xc1\xb8\xf4"\
\x98\xc6\xf4\xa6T<$\xa5\xde\xfc\x00\xb6\xd2J\x14$mO5\x82\xe0\x07\xf0\x13x\
\x10M\n\x1aP\x90\xe6
...
OpCode mein ich, zumindest sehen so viele Exploits aus :D