You could add a computed field. Here is John West's post about it. Below is a condensed example to get just the URL of the image.
Create a class that implements Sitecore.ContentSearch.ComputedFields.IComputedIndexField.
public class ImageIndexField : IComputedIndexField
{
public string FieldName { get; set; }
public string ReturnType { get; set; }
public object ComputeFieldValue(IIndexable indexable)
{
Assert.ArgumentNotNull(indexable, "indexable");
var indexableItem = indexable as SitecoreIndexableItem;
if (indexableItem == null)
{
Log.Warn(string.Format("{0} : unsupported IIndexable type : {1}", this, indexable.GetType()), this);
return null;
}
ImageField img = indexableItem.Item.Fields["MyImageField"];
return img == null || img.MediaItem == null ? null : MediaManager.GetMediaUrl(img.MediaItem);
}
}
Then, add a config include with something like this:
<sitecore>
<contentSearch>
<configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
<defaultIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
<fields hint="raw:AddComputedIndexField">
<field fieldName="MyImageFieldUrl" storageType="YES" indexType="TOKENIZED">sc70.Search.ComputedFields.ImageUrlIndexField, sc70</field>
</fields>
</defaultIndexConfiguration>
</configuration>
</contentSearch>
</sitecore>
Note that the field name is hard coded above. I'm not sure if it is possible to pass that in as a parameter from the config. Sitecore seems to be creating separate classes for each of their computed fields and using inheritance to get reuse.