How do you populate an image field in a field collection programmatically?
There should be no difference between setting the field on a node versus a field collection item.

This should work

$fc_wrapper-&gt;field_signature_image-&gt;file-&gt;set($file);


This should also work

$fc_wrapper-&gt;field_signature_image = (array) $file;


assuming $file is a valid file object.  When I have trouble with adding files, it is usually because I have a property missing.  In that case, I will make a node and field collection item via the UI, and then dpm() to see what us missing.  Half the time, it is $file-&gt;display, and the rest is usually $file-&gt;description.  My guess is that $file-&gt;description is your problem.

What I don't recall is whether using File Entity changes this.  Both line above are based on import scripts I have where this module is disabled.