Reading/Writing image XMP on iPhone / Objective-c - iphone

I'm trying to read XMP information from a jpeg on iPhone.
I can get tags from IPTC, TIFF or EXIF easily using ImageIO but not XMP. I'm specially interested the rating tag.
Does anyone know how to do that?

I've been trying to figure this out myself for a bit. Based on what I've found it looks like a you will need to create or find a custom toolset for parsing the XMP data. It is stored in an XML format. Adobe has an SDK and toolset for dealing with XMP data that can be found here. If you look into that there was an error in the compilation instructions for the SDK in XCode. You can get a correction here on there forums.
You can also find the adobe XMP specification documents here
I still haven't gotten very deep into the rabbit hole of this topic yet myself but since no one else was responding here I thought I'd give you what little I've been able to dig up on the topic.

Related

Failed to display UIWebView to display docx/xlsx file with SFUZipEndOfCentralDirectoryError error with custom URL

We are writing some program to display documents on iOS. I think that there are a lot of confusion on the web about what type of documents which iOS UIWebView could display. Generally people refer to Technical Q&A QA1630 Using UIWebView to display select document types to see that all the MS office 07+ files (such as docx, xlsx, pptx) could not be displayed, however actually that is not what we see from testing. Actually we are able to display docx/xlsx/pptx document at UIWebView either loading from a remote URL, local file or in memory (loadData, here the baseURL can not be nil on simulator, see this link). Of course We are testing on latest version of iOS on iPhone simulator, it might be that the support was not at older iOS. At this point, We don't know that yet. If you know, please let me know.
However right now, We have one issue to display document at UIWebView by using custom URL for security reason. I did the custom URL by following the code here: protecting iOS resource. We could display xls, doc, ppt, pdf file, but not docx/xlsx/pptx, We got some error like this:
EXCEPTION SFUZipEndOfCentralDirectoryError: Could not find the end of central directory record
We tried to debug and could not figure what's to do here. Do you see similar error here? Could anyone shed some lights on this? Thanks very much.
It looks like the document you're trying to open might be corrupt. docx, xlsx, and pptx files are actually zip files containing a bunch of XML documents and other data. Check if you are able to uncompress the file on your computer by renaming it to .zip and then unzipping.

interactive pdf on the iOS

I have been looking for a way to present an interactive pdf file (created by in-design) on
the iPhone. I read a bunch of questions here but none says how to do it. The pdf file contain the text and in the middle it contains a 3d module, but when I present it on the iPhone it shows only the text and an empty white box where the module should appear.
Is it even possible to do it?
I'll be glad for any assistant on this subject or even where to look.
Thanks in advance,
Shahar.
Apple's PDF parser does not support 3D stuff. You're better of implementing the 3D part yourself and just adding that as a UIView on top of the PDF. There are several PDF frameworks that help with that (see https://stackoverflow.com/questions/3801358/pdf-parsing-library-for-ios)
Another alternative might be licensing Adobe's iOS rendering engine. But I doubt that they already added 3D support (or that they will be). Also, from what my sources tell me, pricing is rather high and apparently the framework not very developer friendly. (But I haven't used it myself)

Printed documentation from Sandcastle

We're using Sandcastle for conceptual documentation and have clients that we would like to give documentation to in a non-CHM or HTML form, i.e printed. It could be Word or PDF, something simple to attach to an email. The use case usually involves someone wanting to send along a topic.
The best we've been able to do is to print from the CHM viewer or to PDF from Chrome when viewing the HTML. These have issues in that they remove anchor element clicks, turn images black and white, etc.
There's a thread on the SHFB discussions on Codeplex stating that there isn't any known alternative - http://shfb.codeplex.com/discussions/260489. I'm re-posting the question here in hopes to get more input and visibility.
I had the same need some time ago and came to the conclusion that using a CHM to PDF converter is the best recourse. I could not find one that was open-source though many have trial versions available, and I only needed to convert one document so that served my needs at the time. Note that trial/demo versions typically add a watermark or a label blazoned across the page saying "unregistered version" or some such.
A general web search reveals quite a number of candidates: while I cannot vouch for any, here are a few that seem reputable: Universal Document Converter, Theta CHM To PDF Converter, Softany CHM to PDF Converter.
2014.07.16 Update
Per #J0e3gan's comment, here is a different online converter (limited to 100MB CHM input) that looks quite promising, though I have not yet had occasion to try it.

Converting data to PDF on iPad/iPhone

Let us say I have an application that has a bunch of text and image data. It there a way to then convert the strings and images within my application into PDF format which I could then email?
What would be the best approach to this?
With such a general question, it's hard to answer with anything that isn't more or less a repetition of what Apple's docs say: Generating PDF Content
Apple's support docs are pretty good on this. The gist of it is you want to create a pdf graphics context CGPDFContext and then draw to it. The wierdest thing is that you have to flip the y axis on your drawings to PDF because iOS and Core Graphics use different origins for the axis. All this is explained in the apple docs though. If you have any specific questions, I'm new to developing and stack overflow, but I'd be happy to help you out.
If you want to see how my app writes PDF, check out Photo Logger in the app store.

Take screenshot of audio stream

Alright, what I need is a command-line application that allows you to take a screenshot of a file's audio stream.
For example it should be run like this:
app.exe "C:/artist-title.mp3" "C:/mp3Stream.jpg"
app.exe "C:/artist-title.wav" "C:/wavStream.jpg"
It only has to be able to capture mp3 streams, other streams are a bonus.
Preferably all audio channels are listed in the image, but if all channels are combined into one mono stream it would work just as good for me.
So, is there such a application out there? So that I don't re-invent the wheel.
If not does anyone have tips on how I should go about writing such a application myself? Preferably in Java. I can handle programming pretty well but I'm not exactly an expert on the MP3/WAV formats.
Why do I need it...? Well, it's more fun to link to a file online with some sort of preview image besides the link. It gives you a hint of the audio character before you listen to it (is it loud? does it look like "bit music"? does it have any parts that are more quiet than others? etc).
Never mind, I wrote my own little application in Java.
It was a piece of cake once I found this excellent guide:
http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/
Although you can't download the source from that page (as far as I can tell, though he makes it apparent that you should be able to) he does provide some very useful key lines of code that makes it easy to puzzle together the application.
Adding a little bit of help (easy stuff). You can get a graphics object from doing so:
BufferedImage img = new BufferedImage(500, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D gfx = (Graphics2D) img.getGraphics();
And once you have drawn everything you need on the gfx you can save it to disk just by one line:
ImageIO.write(img, "jpg", new File("waveform.png"));
It's hard to get it to look very good though. Doesn't look as nice as for example Audacity. Guess they have spent more time on it than a few hours though.
The biggest pain about this is however that Java don't support MP3 import. They really should get around to that.
So to get the waveform of MP3s I first convert them into WAV using "javazoom.jl.decoder.Decoder.java", it's on their website. Very easy to use, just give the input path and the output path and it's done.
javazoom dot net (couldn't post more than one "hyperlink" on this website)
The big downside of this is of course that a huuge WAV file has to be created, and woe be unto thee if the MP3 happens to be 15 minutes or so... The WAV will be over 100 MiB (maybe even 200 MiB, haven't found out since I got a Java-out-of-memory-error, even though I gave the VM 512mb).
MP3 support in Java today please. Guess the reason they don't have it is because of copyright issues. Copyright really is slowing man down.
Also take a look at http://www.jsresources.org/
It provides a pretty good FAQ section about everything Audio in Java, and some example applications.