|
Project Information
Featured
Downloads
Links
|
A collection of media-oriented applications in Java, by me.
News30-3-12 Ok, so I had no luck after-all. The 1.0rc1 release of MuPDF just came out a few hours ago, and by chance I noticed it and had a couple of hours to kill. The API has changed a fair bit; mostly adding fz_context here and there, and making any of the big structures opaque. The big change is the way the text device works: although it's a clearly superior API, it doesn't mesh well with the way I wrote the search code. Although i'm scanning all text spans as search input - and I probably don't get anything useful beyond the new 'block' abstraction as there's no guarantee of their order (think of matching a phrase that spans columns in a 2-column layout). So, I've changed the code to the new api (untested, not commited yet), and started work on the search stuff: I think i have the trie stuff working but using the results it provides is now harder to use; so I need a clear head to think it through a bit more (not a: it's a warm Friday afternoon and there's no beer in the fridge kind of head). 4-3-12 I updated PDFZ to the latest revision of MuPDF. Only minor changes were required, and with any luck this will match the next released version. 13-2-12 And ... search too. 13-2-12 So I got the outline stuff working, i.e. table of contents. I don't scroll to the exact location, but the page number is good enough for a printed book, so it should suffice here too. I guess the next big thing is search ... and there's some code for that about, so it shouldn't be too difficult. 12-2-12 Tried to add the outline interfaces from mupdf to the PDFZ - but for some reason the object 'goes away' by the time I try to access it. Bad pointers that the JVM is hiding? No! Just a bad cut-n-paste-o which i've now fixed I also ported some of the PDFView from ReaderZ to swing, and added that to PDFZ. Uses threads and whatnot, and renders on the fly. Makes for a nice and fast PDF viewer. And I noticed the mupdf codebase is changing rapidly at the moment, I might wait for it to settle before updating: as it is it will definitely only work with a revision very close to the one specified in the README. Last night I got in touch with the developers and found out a release is targeted for the end of the month, so I will sync up then. 4-2-12 A bit of a Saturday arvo one-man-hackfest and I added a basic epub reader to ReaderZ. As usual the blog has some more information and a shot of the screen.2-2-12 Kept poking away at CSZ and added some support for floats and filled out some other bits of the implementation. My blog has some more info and a screenshot. As it also states I'm back to work in a couple of weeks so will be pulling back on the time I spend on this for a while. 31-1-12 Although I'm not sure i'll get very far on it, I uploaded a new library - CSZ - which is a very unfinished shot at a XHTML layout engine. As usual, the README has some more info. CSZ is also Affero GPL 3. This took a lot longer than i wanted to spend on it, but then again try reading the CSS specification. Well, I suppose 4 part-time days isn't that long: and a lot of that time was spent on property scaffolding. 27-1-12 Changed the backing buffer in ReaderZ to use greyscale 8-bit. Might make some operations a bit faster (not terribly noticeable so far though); but at least it will use less memory. Plus a few other tweaks and performance improvements to the pdf and image viewers.27-1-12 Just checked in ReaderZ The README says a whole pile about it, and there's a bit more on my blog It will also run on a desktop machine, wherein it simply uses a swing window to display a representation of the device screen. 24-1-12 And another year ... I just checked in a new sub-project, "PDFZ", which is an interface for loading and rendering PDF pages. It is mostly just a JNI wrapper for mupdf with a small helper class. Note that this sub-project is using the GNU Affero General Public License. 4-12-11 Added a dual-tree-complex-wavelet de-noise and sharpen based on http://eeweb.poly.edu/iselesni/WaveletSoftware/2-11-11 I think the last fix broke some other things too ... oh well, it's not like anybody else is using it. I just checked in a DCT de-noising algorithm as I covered in the blog. Its fairly slow but works nicely for a few small tests I tried. Might not work for general images though. 8-10-11 Fixed a bug in the wiener deconvolution filter and made it multithreaded, and added an unsharp mask filter.21-8-11 Managed to remove the piccolo2d dependencies, without losing any functionality. Also added a pretty cool 'show selection' overlay thing. I thought it about time to upload a build too. It's definitely still alpha quality but it can be used for simple image manipulations, or just to laugh at! 20-8-11 Has it really been 2 weeks already? I implemented a crop tool. This uses a new tool overlay/handle mechanism I intend to use to replace the piccolo2d stuff i'm currently using elsewhere. 7-8-11 I implemented some basic OpenRaster support. Now multi-layer load/save works. Plus some tweaks to hide some of the details of undoable image manipulations. ImageZThis is just my hobby project to see if Java can be used to author a fairly complex desktop application - a multi-layer image editor. Originally I intended it to sit somewhere between ImageJ and The Gimp in features - i.e. add the editing, drawing, and layer features missing from ImageJ, but add the image data format support and mathematical processing missing from The Gimp. Such a rather optimistic goal means it is very far from either. FeaturesTaken from the README.
Screenshots
As can be seen, I'm a hacker, not a painter. |