Audio of My UTOSC Presentation

I gave a presentation this past fall at UTOSC about various programming tips I've learned while I worked on Oggify. The audio from this was recorded and is now available. Enjoy.

Permalink | Posted: Dec 15, 2008 | Tags: oggify utosc programming

Building Cocoa GUIs in Python with PyObjC, Part Six

Handling Images

Cocoa provides an easy interface for dealing with images, NSImage. It can be a bit tricky in Python, but once you get it right the first time, it is fairly easy. For our application we have the images stored inside the audio tags and need to populate an NSImage object from binary data stored as a Python byte-string.

There are a number of methods for initializing an NSImage object from various sources. A few of note:

initWithContentsofFile:
initWithData:
initWithPasteboard:

All of these are worth reading about in the developer documentation. We will be using initWithData:. This accepts a NSData object to make the NSImage. This is a multiple step process, so we'll create a method to make things easier:

def buildNSImage(bytes):
    data = NSData.dataWithBytes_length_(bytes, len(bytes))
    return NSImage.alloc().initWithData_(data)

bytes is a Python byte-string containing the image. NSImage will automatically handle the formatting ...

Continue Reading

Permalink | Posted: Dec 25, 2008 | Tags: python osx programming pyobjc cocoa

Best of 2008

This is out of the norm of my blog posts, but it being the end of the year I thought I'd mention some things I've found to be really good this year. I recommend these things to anyone.

Music

Video Games

Continue Reading

Permalink | Posted: Dec 31, 2008 | Tags: 42

Entries for November, 2008

Entries for January, 2009

Tags

42 | django | python | oggify | OSCON | OSCON07 | osx | utosc | mythtv | security | reading | music | gaming | programming | tips | shell | vim | pyobjc | cocoa | iphone | blog | git

Calendar

<< Dec >>
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Search

This space reserved for a search box

A Django site. Hosted on a Slicehost Slice