Ты почти у цели.Второй параметр - это строка, с которой будет заменено совпадение, и вы можете повторно использовать сопоставленные группы из совпадения.Это поможет:
picture.gsub!(/_([a-z0-9-]+).(png|gif|jpg|jpeg)/, '.\2')
Для размещения дополнительных условий, указанных в комментарии:
picture.gsub!(/_([^\/]+).(png|gif|jpg|jpeg)/, '.\2')