Google Image Charts API - How does it work? - google-visualization

I'm looking to create something loosely similar to the Google Image Charts API, where by I can construct a query string, and an image is returned.
For example:
http://chart.apis.google.com/chart?cht=p3&chs=550x250&chd=t:73,13,10,3,1&chco=80C65A,224499,FF0000&chl=Chocolate|Puff+Pastry|Cookies|Muffffffins|Gelato
I was wondering, what would the best way to achieve this be?
Does anybody have any info on how the Google Image Charts API works "under the hood" ?
Are there any libraries that provide dynamic image generation already?

You can use a server side script to read the query string parameters, generate the image and output the content using the image MIME type.
If you are on PHP, you can use an image library like GD to do this. More information here: http://us3.php.net/manual/en/book.image.php

Related

Can I receive a boudingPoly for LABEL_DETECTION results?

How can this be completed with the Google Vision-API please?
send image to vision-api
request: 'features': [{': 'LABEL_DETECTION','maxResults': 10,}]
receive the labels in particular the one I'm interest in is a "clock"
receive the boundingPoly so that I know the exact location of the clock within the image
having received the boundingPoly I would want to use it to create a dynamic AR marker to be tracked by the AR library
Currently it doesn't look like Google Vision-API supports a boudingPoly for LABELS hence the question if there is a way to solve it with the Vision-API.
Currently Label Detection does not provide this functionality. We are always looking at ways to enhance the API
After two years, its the same. I am facing similar challenges and I am thinking of opting other solutions. I think custom solutions like TensorFlow object detection API or DarkNet YOLO object API will do this job very easily.

How to batch download large number of high resolution satellite images from Google Map directly?

I'm helping a professor working on a satellite image analysis project, we need 800 images stitching together for a square area at 8000x8000 resolution each image from Google Map, it is possible to download them one by one, however I believe there must be a way to write a script for batch processing.
Here I would like to ask how can I implement this using shell or python script, and how could I download images by google maps url ?
Here is an example of the url:
https://maps.google.com.au/maps/myplaces?ll=-33.071009,149.554911&spn=0.027691,0.066047&ctz=-660&t=k&z=15
However I'm not able to analyse the image direct download link from this.
Update:
Actually, I solved this problem, however due to Google's intention, I would not post the way for doing this.
Have you tried the Google static maps API?
You get 25 000 free requests, but you're limited to 640x640, so you'll need to do ~160 requests at a higher zoom level.
I suggest downloading the images as so: Downloading a picture via urllib and python
URL to start with: http://maps.googleapis.com/maps/api/staticmap?center=-33.071009,149.554911&zoom=15&size=640x640&sensor=false&maptype=satellite
It's been long time since I solved the problem, sorry for the delay.
I posted my code to github here, plz star or fork as you like :)
The idea is to use a virtual web browser at a very high resolution to load the google map page, then do the page capture. The defect is there will be google symbol all around on each image, the solution is to apply over sampling on the resolution on each of the image, then use the stiching technique to stick them all together.

coldfusion imageNew error: Unsupported Image Type

I am trying to use the ImageNew function (coldfusion 8) to create an image object with a image URL link, e.g. <cfset myImage=ImageNew(evaluate( "http://.../../1.jpg" ))>
There are many links there and most of them are good, but for some of the image links, I got an error when I call the ImageNew function: An exception occurred while trying to read the image. javax.imageio.IIOException: Unsupported Image Type
Does it have something to do with the size of images? Does anybody have any idea?
Many thanks
Results: Finally, it's the CMYK/RGB issue. It seems CF8 has trouble in dealing with CMYK and CF8 doesn't support convertion from CMYK to RGB. I use ImageMagic to do the convertion.
To be fair, I have this issue sometimes. I don't think it has anything to do with your code, coldfusion's image processing utilities either cannot process a perfectly valid image, or they choke on an image that is not up to standards. When this happens it is typically a client uploading an image and my system throws an error. They send me the file, I resave it out using photoshop or something like that, and poof, coldfusion likes it.
The only solution I know if this is the problem, is to use a third party image processor instread of coldfusion's built in functions. I used to use cfx_imagecr
http://efflare.com/products/cfx_imagecr/
But that is not the only solution out there.

How to modify EXIF metadata for JPEG images using Coldfusion?

I am using Coldfusion to view images stored in the file system and I can READ the EXIF metadata of JPEGs, but I'd like to know if it is possible to modify this information and re-save the image.
I know that there are XMP and IPTC custom tags out there, I googled now and seems that javaloader.cfc + some java lib are your only sure option.
EDIT: Since I work on stock photography application I got interested and found this command line tool which could do the trick:
http://www.sno.phy.queensu.ca/~phil/exiftool/

persist image or video into voldemort

I am working on my web service, and required to persist some image (jpg whatever) and video(wmv) into memmory. Just want to use single_node_cluster to feel voldemort.
Can anybody give me a hint of the configuration and sample code of voldemort? I mean how to configure the value type in stores.xml? protobuf? java-serialization?
Any sample or link would be helpful. Thanks
sample code is here. The same code is also in SAMPLE folder of voldemort installation.
Regarding image store in voldemort, you need to encode the image using base64encoding and then save the text generated in to the value.