My starting point is KML file containing a PNG image, which displays correctly in Google Earth:
From Google Earth I choose
> Save Place As > KML, which gives me the unprojected PNG file, plus the KML file telling Google Earth how to display the image. This includes the coordinates in the LatLonbox section:
<GroundOverlay> <drawOrder>1</drawOrder> <Icon> <href>image.png</href> </Icon> <LatLonBox> <north>-43.35635491009509900</north> <south>-43.74776058465478500</south> <east>172.75212961661239000</east> <west>172.35586651444777000</west> </LatLonBox> </GroundOverlay>
The PNG file is 399px x 544px in size:
... so I input the coordinates manually in the ArcMap Georeferencing toolbar, specifying 0,0 for the top left of the image, and 399,-544 for the lower right of the image, matching these with the north/west and south/east coordinates from the KML file. The data frame is set to WGS84, which is apparently the CRS used by Google Earth.
The resulting geocoded image does not correctly match real-world coordinates (the image should be slightly offset as shown by the red arrow - and possibly rotated so the coastline matches):
The image correctly displays in Google Earth, so the coordinate reference must be correct - presumably my logic of using that bounding box with the image bounding box is flawed.
Any ideas what I'm doing wrong here? Thanks