vbagoogle-earth

How to take a color screenshot using Google Earth API?


I am using Google Earth API in Excel VBA. The screenshots are coming in black and white instead of color. Please suggest me where I am doing wrong?

Dim ge As earthlib.ApplicationGE

Set ge = New ApplicationGE

Dim kmlString As Variant

kmlString = "C:\temp\test.kmz"

ge.OpenKmlFile (kmlString, 1)

Dim tPlace As earthlib.FeatureGE

Set tPlace = ge.GetTemporaryPlaces

Dim fldrPath As String, jpgName as String

fldrPath = "C:\temp\"

jpgName = fldrPath & "outJpg1.JPG"

ge.SaveScreenShot (jpgName, 100)

Solution

  • The comment I found in this documentation suggests that this is by design. I haven't found anything that suggests what to do instead, though.

    /// \brief Takes low quality black and white screen shot
    /// of the current camera view.
    ///
    /// This image is not meant to  be used for rapid capture and degrades
    /// in quality if used frequently.
    ///
    /// \param fileName Full path JPG filename of output screen shot.
    /// \param quality Quality factor of output image. Lowest quality is
    /// \c 0 and highest quality is \c 100. Input quality is always clamped
    /// to (\c 0, \c 100) inclusive.
    ///
    /// \retval S_OK Successfully saved screen shot.
    /// \retval (other) Appropriate error code.
    [id(5), helpstring("method SaveScreenShot")]
    HRESULT SaveScreenShot([in] BSTR fileName, [in] long quality);