На наших сессиях мозговых штурмов мы проделали упражнение «Волшебный компьютер» и поняли, что Чед будет вполне доволен, если сможет помещать изображения в компьютер даже без сканера. В результате этого упражнения нам стало ясно, что единственная вещь, с которой не хочется разбираться ни Чеду, ни Малкольму, ни Магнуму, – это аппаратные настройки. С этой точки зрения мы легко смогли осознать, что интерес Чеда состоит только лишь в самом отсканированном изображении и только после того, как оно появилось в его компьютере. Его не беспокоит, каким образом изображение попадет в компьютер – хоть по мановению волшебной палочки, но, как только оно там окажется, Чед должен суметь найти его, обрезать и импортировать в другую программу.
Значительная часть устройств конкурентов, равно как и предшественник «Павлина», просто-напросто погружали изображение – а вместе с ним и пользователя – в пучину файловой системы Windows, предоставляя человеку ту же самую иерархию файлов для хранения, обработки и поиска полученных изображений. Однако эту файловую систему на самом деле слишком сложно применять, фактически она бесполезна.
Для работы по правилам этой файловой системы требуется, чтобы Чед задал отсканированному изображению имя, после чего указал директорию, в которой требуется сохранить файл. Если бы ему понадобилось найти это изображение, он должен был бы вспомнить название или место, куда он его сохранил. Реальность такова, что Чед, как и любой другой человек, не слишком силен в запоминании подобных мелочей. Компьютер же, с его жестким диском, приспособлен для таких вещей куда больше, только ему до человека дела нет. Вместо этого он вынуждает Чеда самостоятельно выполнять работу по запоминанию имени файла и места его хранения.
В нашем проекте программа сканера никогда не потребует от Чеда задавать имя файлу и указывать место сохранения. Взамен она молча возьмет картинку и позаботится о ее сохранности вместо Чеда. Когда же ему впоследствии нужно будет отыскать изображение, помимо того, что он легко опознает его по миниатюре, он также сможет найти его по любому из параметров: дате сканирования, размеру, наличию в нем текста или по отметке об экспорте в какую-либо другую программу.
Вместо того чтобы заставлять Чеда и Магнума разбираться в различных настройках сканера, мы сфокусировались на трех более важных моментах:
• убрали из интерфейса все управляющие элементы;
• сделали невозможным потерять изображение в пучинах файловой системы;
• максимально упростили экспорт полученных изображений в документы или другие программы.
Мы провели ревизию всех доступных опций для работы с изображениями и пришли к выводу, что из них жизненно необходимы лишь три – от всех прочих можно смело отказаться или схожие манипуляции можно произвести с изображением позже в других, более подходящих программах наподобие Photoshop.
Вот опции, которые мы сохранили:
• обрезка (Crop): усечение краев изображения;
• масштабирование (Resize): изменение размера изображения;
• ориентация (Reorient): вращение изображения, изменение его ориентации.
Набор опций получился достаточно небольшим, однако это были самые необходимые опции, которые бы использовались чаще всего, поэтому мы решили сделать их качество наивысшим и обеспечить простоту применения. Существенная экономия на объеме кода за счет отсутствия необходимости программировать множество функций позволила команде разработчиков освободить время и вложить максимум усилий в три оставшиеся опции.
Все инструменты программной обрезки изображений, которые мне довелось испытать, работают одинаково некорректно. Пользователь нажимает левую кнопку мыши на картинке и, удерживая кнопку, растягивает прямоугольную рамку. Первая точка, где происходит нажатие кнопки мыши, оказывается левым верхним углом нового изображения, а точка, где пользователь отпускает кнопку, завершая операцию растяжения рамки, оказывается правым нижним углом изображения. Таким образом, все, что остается за пределами этой рамки, обрезается, а выделенная область становится новым изображением. Этот метод является простым, быстрым, легким в реализации и несложным в понимании. К примеру, в серьезной программе обработки графики Photoshop тоже используется этот метод. Как бы то ни было, у этого способа есть ряд больших недостатков. Самый большой из них заключается в том, что выполнить операцию выделения области весьма непросто: требуется произвести манипуляцию с величайшей точностью всего за одно движение мыши. При этом, если три стороны изображения пользователь сможет обозначить довольно легко, то вот выделить четвертую сторону, не нарушая уже установленных границ трех остальных, может оказаться затруднительно. Более того, так как данная операция необратима, получается, что программа не позволит получить еще один вариант обрезки на основе того же изображения.
Предложенный нами инструмент обрезки изображения позволил решить обе упомянутые проблемы с помощью простого, легкого в освоении и несложного в понимании способа. Каждая из четырех сторон изображения содержала собственный маркер, видимый во время всей операции обрезки. По маркеру можно было ясно понять, что это объект непосредственного манипулирования. Все, что теперь требовалось сделать Чеду, – это потянуть за маркер, после чего он мог моментально получить визуальную обратную связь на свои действия и оценить последствия. С перемещением маркера та часть изображения, которая остается позади него, окрашивается в призрачно-серый цвет. Становится ясно, что изображение обрезается, но также остается понимание, что эта операция не является необратимой. Чед может с той же легкостью вернуть маркер обратно и таким образом восстановить соответствующий фрагмент изображения в полном цвете.
Перетягивая один из маркеров, Чеду сразу становится понятно, что все четыре границы области обрезки не зависят друг от друга, то есть смещение одной границы не влияет на остальные. Он может сколько угодно раз перемещать границы области обрезки до получения нужного результата. Ощущение от такого пользовательского взаимодействия совсем иное, нежели при использовании традиционных инструментов обрезки изображения, в которых операция удаления краев слишком зависит от обстоятельств, ее нельзя обратить и она должна быть выполнена максимально точно за одно движение. Пользователей, обладающих непревзойденной ловкостью рук, способных совершить такое точное движение, весьма немного. Десятилетний мальчик Чед явно не относится к этой категории. Кроме того, наш вариант обрезки обладает наглядностью и позволяет совершать операцию в несколько заходов. Ведь даже самые лучшие дизайнеры обычно предпринимают несколько попыток, прежде чем получат идеальный результат. С прежними инструментами сделать такое было просто невозможно. Созданный же нами инструмент для Logitech справлялся с этим превосходно.
Даже после того, как Чед подтверждал обрезку выбранного фрагмента, операция не становилась необратимой. Текущие параметры обрезки просто становились атрибутами изображения, а само оно постоянно хранилось в первоначальном варианте. (В меню также присутствовал дополнительный пункт, который позволял сделать обрезку необратимой в целях экономии дискового пространства.) Таким образом, Чед мог создать скан-копию фотографии всех членов семьи, а затем вырезать из нее только изображение матери, если того требовало домашнее задание, а спустя три месяца снова найти то же отсканированное фото и изменить границы обрезки, сохранив только изображение отца для вставки в текст письма. Воспользуйся Чед любой другой программой для получения сканов изображений, ему пришлось бы сканировать фотографию заново.