Попытка настроить координаты кадрирования, чтобы соответствовать новому соотношению сторон - PullRequest
2 голосов
/ 20 декабря 2011

Я использую инструмент www.imageresizing.net для .NET для создания галереи и эскизов на лету. Что действительно хорошо в этом компоненте, так это то, что вы можете повторно обрезать и изменять размеры изображений, просто изменив URL.

Теперь у меня есть изображение галереи с требуемым соотношением сторон (9: 5), которое корректно отображается ниже:

upload/289.jpg?crop=22,30,562,330&width=540&height=300

Вы заметите определенные координаты кадрирования выше 22,30,562,330 (X1,Y1,X2,Y2), при этом будет выделена область 22 пикселя, 30 пикселов вниз, 562 пикселя в поперечнике, 330 пикселей снизу. Таким образом, в основном область грубого кадрирования 540x300px в центре большого изображения (640x427, но это не имеет отношения к вопросу).

Теперь, как уже было сказано, это отображается хорошо и в правильном соотношении сторон. Затем я могу изменить URL-адрес для версии миниатюры, используя:

upload/289.jpg?crop=22,30,562,330&width=120&height=67

Ранее я выяснил, что 120x67 (точнее, 120,6x67 пикселей) - это правильная ширина и высота для поддержания соотношения сторон, и мои координаты кадрирования могут, очевидно, оставаться такими же, как я просто масштабирую образ. Теперь снова, когда я смотрю на это, все выглядит великолепно.

test1

(я поместил его на серый фон, чтобы вы могли видеть границы изображения)

Однако моя проблема в том, когда я хочу выбить 10 пикселей с обеих сторон и установить ширину 100, чтобы все получилось грушевидным. Я хочу сделать это, потому что в галерее изображений, которую я использую, мне нужно уметь вписаться в четыре изображения в поперечнике.

Теперь, если я укажу это, мое изображение будет отображаться, но в белом почтовом ящике с двумя маленькими полосами сверху и снизу, что я ценю, потому что я не добавил 10 пикселей к кадрированию слева или еще вычел 10 пикселей из мой урожай справа:

upload/289.jpg?crop=22,30,562,330&width=100&height=67

test2

Так что, очевидно, мне нужно скорректировать мой урожай X1 (22) и немного X2 (562). Тем не менее, это не так просто, так как при этом я сохраняю почтовый ящик, если я задаю 32 и 552 соответственно, что, я думаю, нужно компенсировать уменьшением ширины со 120 до 100.

Я думаю, что необходимые 10 пикселей с обеих сторон должны быть применены до масштабирования или что-то (?), Но я понятия не имею, как справиться с этим алгоритмом, и я действительно потерян здесь !!

Имеет смысл? Могут ли здесь помочь какие-нибудь волшебники по манипуляциям с изображениями / математике?

1 Ответ

1 голос
/ 07 января 2012

Просто добавьте &mode=crop, чтобы модуль выполнил за вас математику (и убедитесь, что вы используете V3.1 +).

Я полагаю, что ваша путаница проистекает из того факта, что координаты кадрирования (по умолчанию) относятся к исходному изображению, а значения ширины / высоты представляют собой масштабированный размер изображения. То есть, 10 пикселей от ширины равны примерно 50 пикселям в прямоугольнике кадрирования с этим конкретным изображением. С cropxscale и cropyscale вы можете изменить способ интерпретации значений этих культур. &cropxscale=100&cropyscale=100 делает их процентами, а &cropxscale=120&cropyscale=67 позволит вам указать координаты кадрирования относительно размера масштабированного изображения.

Кроме того, V3.1 и более поздние версии позволяют выполнять как ручную, так и автоматическую обрезку:

Ex. ?crop=22,30,562,330&width=100&height=67&mode=crop.

Модуль сначала применяет ваши параметры обрезки, а затем переходит к обрезке снова, чтобы убедиться, что вы получите точное соответствие с вашими характеристиками и высотой. Если вам не нужна точная ширина и высота, вы можете использовать & mode = max.

Кроме того, вы можете настроить способ автоматической обрезки с помощью параметра привязки .

Я не совсем уверен, откуда берутся ваши координаты обрезки или какова остальная ситуация, но, как всегда, со мной можно связаться по адресу support@imageresizing.net.

Вы также можете проверить справочник команд на imageresizing.net/docs/reference.

Я думаю, что могу добавить страницу с примерами совместного использования команд кадрирования, поскольку теория может быть интенсивной по математике. Мои извинения за то, что я так долго нашел этот пост; Я хотел бы, чтобы вы отправили письмо по электронной почте support@imageresizing.net, я мог бы ответить на ваш вопрос немедленно.

Как всегда, если есть что-то, с чем я могу помочь, пожалуйста, напишите мне по электронной почте или напишите на SO, и отправьте мне ссылку по электронной почте :) Я обновляю документацию http://imageresizing.net 5-20 в среднем, раз в неделю, чтобы сделать вещи более понятными или более подробными, поэтому мне всегда интересно, когда кто-то смущен, поскольку это обычно означает, что документация требует работы или должна быть связана с другими местами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...