It is also possible that ZnEasy is doing some encoding transformations that 
breaks it; after all, you are retrieving binary data as text data, so encoding 
should be applied on it.

Peter

On Wed, Apr 26, 2017 at 04:50:04PM +0200, Sven Van Caekenberghe wrote:
> I am puzzled by how they actually encoded the PNG as a String, I tried a 
> couple of alternatives but I could not get binary data out of it so that it 
> parsed successfully as PNG.
> 
> If I would have to encode binary data in JSON I would use Base64 encoding 
> (but alternatives exist).
> 
> > On 24 Apr 2017, at 20:36, Juraj Kubelka <juraj.kube...@icloud.com> wrote:
> > 
> > Hi,
> > 
> > I was playing with GitHub Gist API and I have queried the following Gist: 
> > https://gist.github.com/mbostock/5503544
> > I was interested how the PNG image is returned: 
> > https://gist.github.com/mbostock/5503544#file-thumbnail-png 
> > 
> > I can obtain the whole Gist executing:
> > 
> > STONJSON fromString: 
> >     (ZnClient new
> >             url: 'https://api.github.com/gists/5503544';
> >             accept: 'application/vnd.github.v3+json';
> >             get).
> > 
> > I can get PNG contents executing:
> > 
> > pngData := (ZnEasy get:
> >     ((((STONJSON fromString: 
> >             (ZnClient new
> >                     url: 'https://api.github.com/gists/5503544';
> >                     accept: 'application/vnd.github.v3+json';
> >                     get)) at: 'files') at: 'thumbnail.png') at: 'raw_url')) 
> > contents.
> > PNGReadWriter formFromStream: rawPng readStream.
> > 
> > But the PNG image is part of the Gist query and can be retrieved by:
> > 
> > pngContent := ((((STONJSON fromString: 
> >     (ZnClient new
> >             url: 'https://api.github.com/gists/5503544';
> >             accept: 'application/vnd.github.v3+json';
> >             get)) at: 'files') at: 'thumbnail.png') at: 'content').
> > 
> > "As pngContent is a WideString, I cannot use:"
> > PNGReadWriter formFromStream: pngContent readStream.
> > 
> > How can I read the PNG image from the pngContent? Any idea? 
> > And the reverse question: How can I send the PNG bytes using JSON format? 
> > 
> > Thanks!
> > Juraj
> > 
> 
> 

Reply via email to