2012-05-25 1 views
0

Я делаю мало работы для своего сайта, и я хотел бы автомасштабировать мои изображения. Но не только автоматически изменять размер, но и сохранять их пропорционально, даже если Я изменяю их ширину или высоту. Я хочу добавить дополнительные белые границы, чтобы компенсировать новое пространство.C# изменить размер изображения и поместить его в квадрат при сохранении пропорции

Я никогда не делал никакой работы с изображениями в прошлом, как мне подойти к этому?

+0

Что вы пробовали? Здесь есть много существующих вопросов по изменению размера изображения, чтобы начать работу, например. мой ответ здесь: http://stackoverflow.com/questions/10106792/resize-image-by-pixel-amount/10109195#10109195 – Widor

+0

Ваш тег как winforms, но вы говорите, что это для вашего сайта. –

ответ

6

Рассчитайте высоту, как если бы ширина соответствовала, а затем проверьте ее на высоту контейнера. Если она выше, а затем рассчитать ширину, чтобы сделать высоту посадки:

newHeight = oldHeight * containerWidth/oldWidth; 
if (newHeight <= containerHeight) { 
    newWidth = containerWidth; 
} else { 
    newWidth = oldWidth * containerHeight/oldHeight; 
    newHeight = containerHeight; 
} 

Теперь вы можете рассчитать, куда поместить изображение в центр его:

x = (containerWidth - newWidth)/2; 
y = (containerHeight - newHeight)/2; 
+0

Итак, как центрировать изображение/как его использовать в теге img? @guffa – nickornotto

+0

@ user1611620: Есть много способов. Например, вы можете использовать отступы или поля для размещения тега изображения в соответствии с координатами или абсолютное позиционирование. – Guffa

0

Если вы говорите из одного источника когда вы загружаете основное изображение и запрашиваете его версии с помощью запроса, я могу помочь.

Я являюсь автором http://imageresizing.net/. Это библиотека с открытым исходным кодом, финансируемая дополнительными плагинами.

Функциональность, которую вы хотите, входит в бесплатное ядро ​​- просто установите и добавьте? Width = 100 & height = 100 на любой URL изображения.

Выполнение обработки изображений с ASP.NET очень сложно. Вы действительно не должны этого делать, если у вас нет сильного фона Win/C++. .NET не мусор собирает экземпляры System.Drawing.

 Смежные вопросы

  • Нет связанных вопросов^_^