История изменений
Исправление monk, (текущая версия) :
Можете ещё пояснить как правильно скейлить изображение на экране.
Я делал так:
(define bm (send snip get-bitmap)) ;; источник
(define width (send bm get-width))
(define height (send bm get-height))
(define (scale slider _2)
(define s (/ (send slider get-value) 100))
(define bdc (new bitmap-dc% [bitmap (make-bitmap (round (* s width)) (round (* s height)))]))
(send bdc set-scale s s)
(send bdc draw-bitmap bm 0 0)
(send snip set-bitmap (send bdc get-bitmap))) ;; масштабированное
Само масштабирование в строке (send bdc set-scale s s).
высчитывать размеры дисплея, отмерять как туда влезает 3:4 изображение, рисовать его туда и т.д
Высчитывать в любом случае надо. Координаты, коэффициент. Автоматически только элементы интерфейса масштабируются.
Исходная версия monk, :
Можете ещё пояснить как правильно скейлить изображение на экране.
Я делал так:
(define bm (send snip get-bitmap)) ;; источник
(define width (send bm get-width))
(define height (send bm get-height))
(define (scale slider _2)
(define s (/ (send slider get-value) 100))
(define bdc (new bitmap-dc% [bitmap (make-bitmap (round (* s width)) (round (* s height)))]))
(send bdc set-scale s s)
(send bdc draw-bitmap bm 0 0)
(send snip set-bitmap (send bdc get-bitmap))) ;; масштабированное
Само масштабирование в строке (send bdc set-scale s s).
высчитывать размеры дисплея, отмерять как туда влезает 3:4 изображение, рисовать его туда и т.д
Высчитывать в любом случае надо. Координаты, коэффициент. Автоматически только элементы интерфейса масштабируются.