Два ответа с блоками кода в основном правильные, за исключением того, что они пропускают одну важную вещь:
Предполагается, что первым аргументом image_style_create_derivative будет массив стилей изображения.
То, что они передают, это просто название стиля. В foreach, если вы добавите:
$style = image_style_load($style_name);
затем измените $ style_name на $ style в функции image_style_create_derivative, она должна работать как положено, и сгенерировать стилизованное изображение.
image_style_create_derivative($style, $file->uri, $derivative_uri);
Надеюсь, что это поможет кому-то еще с этой проблемой.