В настоящее время я работаю над проектом, основанным на Kinect, и я не могу найти способ изменения размера изображения относительно центра изображения. Мне удалось обновить ширину и высоту изображения, когда я двигаю руками, и я получаю снимок, но относительно угла TopLeft. Итак, в принципе, если вы представляете прямоугольник, верхний левый угол всегда фиксируется, а другие углы перемещаются. Изображение изменяется только в направлениях справа налево и снизу вверх.Изменение размера изображения относительно центра изображения
Сначала я попытался использовать ScaleTransform для изменения размера изображения, и там я мог указать начало преобразования (которое я устанавливал в середине изображения), но он не позволяет обновить размер изображения в результате. поэтому он мне не нужен ..
Итак, если кто-нибудь может дать мне какое-то представление о том, как динамично подходить к задаче изменения размеров во всех направлениях, я был бы очень благодарен. Может быть, есть какой-то способ установить точку на другое значение, чем верхнее левое?
Заранее благодарен!
Вы должны сначала перевести изображение в начало координат, применить масштабирование, а затем перевести его обратно в исходный центр. См. Функцию scaleImage() в [этом ответе] (http://stackoverflow.com/questions/9792835/image-manipulation-wont-display-transformed-image). – beaker
Спасибо за идею! Я также просто подумал, что могу обновить поля, чтобы сдвинуть изображение в направлениях, которые мне нужны во время масштабирования, создавая впечатление, что масштабирование происходит из центра. – user2151660
Если у вас есть способ переместить начало координат в центр вашего изображения, это сработает. В противном случае, перевод на начало и обратно не требует слишком больших накладных расходов с точки зрения кодирования или вычисления (матрицы преобразования умножаются вместе, прежде чем применять их к точкам на вашем изображении). – beaker