Ditto for Images.

I'm guessing that the images service also uses marker-and-limit pagination. I'll have to
check when I'm less :airplane:.
diff --git a/openstack/compute/v2/images/images.go b/openstack/compute/v2/images/images.go
index c881092..c4e838e 100644
--- a/openstack/compute/v2/images/images.go
+++ b/openstack/compute/v2/images/images.go
@@ -1,52 +1,38 @@
 package images
 
-import "github.com/mitchellh/mapstructure"
+import (
+	"github.com/mitchellh/mapstructure"
+	"github.com/rackspace/gophercloud/pagination"
+)
 
 // Image is used for JSON (un)marshalling.
 // It provides a description of an OS image.
-//
-// The Id field contains the image's unique identifier.
-// For example, this identifier will be useful for specifying which operating system to install on a new server instance.
-//
-// The MinDisk and MinRam fields specify the minimum resources a server must provide to be able to install the image.
-//
-// The Name field provides a human-readable moniker for the OS image.
-//
-// The Progress and Status fields indicate image-creation status.
-// Any usable image will have 100% progress.
-//
-// The Updated field indicates the last time this image was changed.
 type Image struct {
-	Created  string
-	Id       string
-	MinDisk  int
-	MinRam   int
-	Name     string
+	// ID contains the image's unique identifier.
+	ID string
+
+	Created string
+
+	// MinDisk and MinRAM specify the minimum resources a server must provide to be able to install the image.
+	MinDisk int
+	MinRAM  int
+
+	// Name provides a human-readable moniker for the OS image.
+	Name string
+
+	// The Progress and Status fields indicate image-creation status.
+	// Any usable image will have 100% progress.
 	Progress int
 	Status   string
-	Updated  string
+
+	Updated string
 }
 
-func GetImages(lr ListResults) ([]Image, error) {
-	ia, ok := lr["images"]
-	if !ok {
-		return nil, ErrNotImplemented
-	}
-	ims := ia.([]interface{})
+// ExtractImages converts a page of List results into a slice of usable Image structs.
+func ExtractImages(page pagination.Page) ([]Image, error) {
+	casted := page.(ListResults).Body
+	var results []Image
 
-	images := make([]Image, len(ims))
-	for i, im := range ims {
-		imageObj := im.(map[string]interface{})
-		err := mapstructure.Decode(imageObj, &images[i])
-		if err != nil {
-			return images, err
-		}
-	}
-	return images, nil
-}
-
-func GetImage(ir ImageResults) (Image, error) {
-	image := Image{}
-	err := mapstructure.Decode(ir, &image)
-	return image, err
+	err := mapstructure.Decode(results, casted)
+	return results, err
 }