[ create a new paste ] login | about

Link: http://codepad.org/DidDsbjF    [ raw code | fork ]

C, pasted on May 5:
   1. uint32 sign=[fh readUInt32BE];  
   2. uint32 marker=[fh readUInt32BE];  
   3. uint32 chunklen=[fh readUInt32BE];  
   4. off_t nextchunk=[fh offsetInFile]+((chunklen+3)&~3);  
   5. // At this point, I'd like to take a moment to speak to you about the Adobe PSD format.  
   6. // PSD is not a good format. PSD is not even a bad format. Calling it such would be an  
   7. // insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having  
   8. // worked on this code for several weeks now, my hate for PSD has grown to a raging fire  
   9. // that burns with the fierce passion of a million suns.  
  10. // If there are two different ways of doing something, PSD will do both, in different  
  11. // places. It will then make up three more ways no sane human would think of, and do those  
  12. // too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide  
  13. // that *these* particular chunks should be aligned to four bytes, and that this alignement  
  14. // should *not* be included in the size? Other chunks in other places are either unaligned,  
  15. // or aligned with the alignment included in the size. Here, though, it is not included.  
  16. // Either one of these three behaviours would be fine. A sane format would pick one. PSD,  
  17. // of course, uses all three, and more.  
  18. // Trying to get data out of a PSD file is like trying to find something in the attic of  
  19. // your eccentric old uncle who died in a freak freshwater shark attack on his 58th  
  20. // birthday. That last detail may not be important for the purposes of the simile, but  
  21. // at this point I am spending a lot of time imagining amusing fates for the people  
  22. // responsible for this Rube Goldberg of a file format.  
  23. // Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,  
  24. // I had to apply to them for permission to apply to them to have them consider sending  
  25. // me this sacred tome. This would have involved faxing them a copy of some document or  
  26. // other, probably signed in blood. I can only imagine that they make this process so  
  27. // difficult because they are intensely ashamed of having created this abomination. I  
  28. // was naturally not gullible enough to go through with this procedure, but if I had done  
  29. // so, I would have printed out every single page of the spec, and set them all on fire.  
  30. // Were it within my power, I would gather every single copy of those specs, and launch  
  31. // them on a spaceship directly into the sun.  
  32. //  
  33. // PSD is not my favourite file format.  


Create a new paste based on this one


Comments: