У меня есть проблема, когда я создал PREVIEW HANDLER для изображения. Проблема в том, что когда у меня есть фотография на панели предварительного просмотра, она не меняет свой размер, сохраняя соотношение сторон, поэтому я хочу написать код, чтобы фотография сама изменяла размеры, сохраняя соотношение сторон изображения. Я также должен помнить, что когда я изменяю размер изображения с помощью моего алгоритма, он должен поддерживать соотношение сторон, и изображение должно иметь максимально возможный размер на панели предварительного просмотра (я имею в виду, что не должно быть никаких других алгоритмов, которые могли бы иметь изображение предварительный просмотр большего размера, чем изображение, полученное по нашему алгоритму с сохранением соотношения сторон).
Мы должны помнить, что высота панели предварительного просмотра является постоянным фактором, поэтому нам приходится иметь дело только с изменяющейся шириной (я имею в виду, что в соответствии с изменяющейся шириной мы должны поддерживать соотношение сторон как для высоты, так и для ширины изображения).
Любая помощь в развитии algorthim приветствуется.
Сначала я четко определю два соотношения.
ImageRatio = WidthOfImage / HeightOfImage
а также
WindowRatio = WidthOfPreviewPane / HeightOfPreviewPane
,
Во-вторых, вы можете попробовать свой Windows Explorer снова. Когда WindowRatio
меньше, чем ImageRatio
Если вы перетащите панель вертикально, высота панели предварительного просмотра также изменится.
Наконец, вы можете получить ActualWidthOfImage
а также ActualHeightOfImage
как показано ниже:
if (WindowRatio > ImageRatio)
{
ActualHeightOfImage = HeightOfPreviewPane;
ActualWidthOfImage = ActualHeightOfImage * ImageRatio;
}
else
{
ActualWidthOfImage = WidthOfPreviewPane;
ActualHeightOfImage = ActualWidthOfImage / ImageRatio;
}
Я правильно понимаю вашу проблему? Я хотел бы помочь вам, если у вас есть дополнительные вопросы.
Других решений пока нет …