psychoi3oy wrote in software

Programming ideas..... (cross posted with a bunch of other journals)

I have an interesting CD-Burning project that I need help with.


When I'm done I want to have a program that takes any picture (in a certain size) and either spits out a file to be burned or just burns it straight, such that when you eject the CD and look at the surface, it looks like the picture.

The 2 major chunks of this program are the first part that converts the file from a string of pixels that describe it left to right, top to bottom and turn it into a spiral of pixels that start about an inch from the center and go out. The second part is the half that burns it into the CD in a way that you can actually see the difference between on and off parts (black and white, or green and slightly lighter green).

I started working on the second part first (cause if the first part doesn't work I can at least try burning weird patterns into the CD) and started by writing a small Perl program that outputs a file of all 0's. Then I changed it just a little bit so it'd be all 1's in binary. Then I changed it a little more and made it do both files at the same time, and had it spew out 6 files, each 100MB large, and named so that on the CD it'd alternate 1's and 0's in large bands, but it didn't work, the only difference I could tell was what was burned and what wasn't. I guess the ISO formatting obscures what the data itself is.

So now I'm looking into modifying some open source CD burning software to selectively burn areas while leaving other areas untouched. I installed Cygwin the other night (it's a UNIX/Linux emulator for windows from Redhat) and have been looking through source for the 'Cdrecord' program but I'm a little rusty in my C so hopefully I'll make heads or tales of it soon. I haven't worked at the image data conversion part of the program, as I have no idea where to start with the algorithm on that.

Anybody with information or a good idea where I should go for information please reply, I'm eager to learn how to do this.