2013-04-18 3 views
-6

Есть ли быстрый способ определить, является ли изображение квадратом или нет на C#?Определить, является ли изображение квадратным

Вопрос сформулирован неправильно, мои извинения.

Есть ли способ определить, можно ли масштабировать изображение «вниз», чтобы вставить квадратный блок без обрезки ни по высоте, ни по ширине, например, если у меня есть 960x640, у нас есть квадрат, на его ширине, но если у нас 640x960, мы этого не делаем.

Мне нужно определить, можно ли уменьшить изображение на 100% в квадратный блок, например 150x150, без потери части изображения.

Update

Позвольте мне попробовать еще раз.

Я должен перебирать коллекцию изображений:

960x658 960x566 960x381 960x378 714x960 658x960

Я знаю, что первые два изображения будут квадрат (150x150), я знаю, средний два будут прямоугольными (горизонтальными) (300x150), и я знаю, что оставшиеся два будут прямоугольными (вертикальными) (150x300). Есть ли алгоритм, сторонний компонент или встроенный метод, чтобы определить это для меня?

Я не хочу идти и вводить код вложенного спагетти, используя инструкции if для этого? Я так потерялся: $

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+7

Как мог 960x640 быть квадратом, но 940x600 нет? – mbeckish

+0

Это вы что искали? http://stackoverflow.com/questions/111345/getting-image-dimensions-without-reading-the-entire-file – Odys

ответ

3

Есть ли быстрый способ определить, является ли изображение квадратом или нет в C#?

Ну, вы в значительной степени даете ответ самостоятельно. У вас есть изображение. У вас есть свойства изображения.

if(img.Width == img.Height) 
    //I'm a square 

Теперь, когда вы повторяете коллекцию изображений.

foreach(Image img in myImageCollection) 
    if(img.Width == img.Height) 
     squareImages.Add(img); 

Как простой.

+0

+1. Я собирался это предложить. Насколько проще это может быть? :)) – Neolisk

+2

Я прочитал вопрос, как 5 раз, чтобы убедиться, что я ничего не пропустил ... – phadaphunk

+2

+1 для '// Я квадрат' – Abhinav

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