Hacking Watermarks and Maps

Hi,

I've just installed Zenphoto, and i'm liking it. Very clean, straightforward, minimalist and no feature bloat. Good stuff.

Just wanted to post a few thoughts... firstly, i'm LOVING the fact I can just FTP stuff onto the server and it'll get picked up... good stuff. Personally, i'm exporting from Lightroom, and rsyncing the exported JPEGs to the server's albums folder. This way, if I change any metadata (keywords, caption etc), only the changes are sync'd (eg a few bytes instead of re-uploading an entire 5-6Mb JPEG). I just have to hit the 'refresh metadata' button in ZP admin and i'm set. Very nice.

Secondly, I wasnt too happy with the way watermarking was working... ideally i'd like to see a support for different watermarks at different image sizes, or watermark scaling. In the meantime, i've hacked i.php to change the following:

$allowWatermark = $_GET['s'] != 'thumb';
}
}

becomes

$allowWatermark = $_GET['s'] != 'thumb';
}
if ($_GET['s'] < 1000) {
$allowWatermark = false;
}
}

That is to say, i've basically set zp up to only watermark images if requested over a certain size (in this case 1000). Sure, its ugly and hard coded, but hopefully the core ZP devs could incorporate the idea, if not the implementation. In the meantime, it works for me - my default-sized images are watermark-free, and my full-size ones have a large watermark embedded.

Ok, next up is Maps. I like the idea of Google Maps integration, but I dont have a GPS-enabled camera, or a standalone GPS device. However, I do have a reasonable memory for where the photos were taken, and i'd like to do something based on the Location, City, State/Province and Country fields. What i'm planning is to construct a string based on the four aforementioned fields, and pass that to the Maps API - let Google do the hard work of where in the world we are. I'm going to try to hack this together, and I may or may not publish my findings, depending on basically if it works. I suspect the vast majority of photographers wishing to use ZenPhoto lack GPS hardware, and a good many of them would like to use Google Maps.

Ok, i'm off to have a crack at this Maps lark. Wish me luck!

Comments

  • ps my fledgeling site is up at http://gallery.mungler.com - any comments / criticism / constructive abuse welcome. there are only a couple of test images online though...
  • ok.. some initial success here... edited template-functions.php to add an 'else' clause to the printImageMap function, to print a map based on the Location, City, State and Country IPTC data. I'm just building a simple string by concatenating the values interspersed with commas, and feeding that to the addAddress function in phooglelite.php.

    however, two major problems:

    1) addresses which I can find no problem with google maps directly (eg: Fife Animal Park, Ladybank, Fife, Scotland) get a 602 error from the geocoder thru the API. This seems bizarre...

    2) i dunno if its a version conflict or something, but i get an error with preg_match() function not liking brackets or something... i might try to use xml2array or something if I get past these 602 errors... humph.

    cheers
  • Ok... this gets weirder. If I go to Google Maps and input 'Edinburgh Castle, Edinburgh, Lothian, Scotland' - boom, it finds it. However, the API is returning a bunch of weird-looking addresses, the first of which is 'Craigmillar Castle Ave, Edinburgh, City of Edinburgh, EH16 4, UK'. Which, ok, is in Edinburgh, but... goddamn.

    Starting to think the 'correct' way to do this is to geocode the JPEGs themselves with the lang/long somehow, either on upload, or geocode the original RAW shots in Lightroom. Hmmm..... I must say, i'd rather hoped for more from the Maps API. Then again, im probably doing it wrong... any help appreciated!
  • One more thing...

    I have been refreshing the metadata quite often, and i've noticed some gremlins.... for some reason the 'State / Province' info is getting eaten... for example:

    Fife Animal Park, Ladybank, Fife, Scotland

    somehow became:

    Fife Animal Park, Ladybank, Scotland, Scotland

    (for Location, City, State/Province and Country IPTC fields, respectively). Is this a bug?
  • rehi...

    ok, so it seems that adding the State/Province to Google Maps confuses it. Even directly on the website. For example, on maps.google.co.uk:

    Royal Mile, Edinburgh, Lothian, Scotland - returns 0 results

    but

    Royal Mile, Edinburgh, Scotland - finds the correct location.

    So i'm removing State/Province from the equation. Still some oddness though - the website will find Fife Animal Park, Ladybank, Scotland no problem, but the API wont.

    I'm considering a progressive fallback system, whereby it'll try:

    Location, City, Country
    City, Country,
    Country

    in that order. Dunno if i'll hit issues with flooding Google's server... might have to include a sleep....
  • As far as watermarks go, you can use any image you want. And, if you install the nightly build, you can position the watermark wherever you want.
  • yeah, i know that. however, those abilities don't address the problem. the watermark image is the same size regardless of the generated image, so its either too big on the medium rendering, or too small on the fullsize.

    also, the bug with metadata has me concerned. sometimes the state/province field gets overwritten with the country data.
  • Suggested workflow for geotagging sans GPS (Mac only, but I'd guess there are similar workflows for other platforms):
    1. find the location in GoogleEarth
    2. use the LightRoom metadata browser to select all the photos you took at a given spot (assuming you've already tagged your stuff up properly).
    3. Install and run Geotagger. Drag the photos from LR to the Geotagger dock icon. This writes the geodata to the EXIF in the JPG.
    4. Metadata > Read Metadata from file. This reads the geodata from the EXIF back into LR's db.
Sign In or Register to comment.