Размер Canvas по Image

0 views
Skip to first unread message

McRain

unread,
Jun 26, 2008, 7:09:22 PM6/26/08
to ruFlex
Проблема в следующем:
<mx:Canvas id="editorDesk" >
<mx:Canvas id="renderCanvas">
<mx:Image id="srcImage" maxWidth="300" maxHeight="300" />
</mx:Canvas>
</mx:Canvas>
Когда srcImage.source изменяется - нужно чтобы renderCanvas плотно
облегал Image. Если загрузить идеальные изображения, с какой либо
пропорциональность - все нормально, но если изображение например в
высоту = ширина * 2, то renderCanvas начинает вбок увеличиваться
больше чем srcImage.width....

Что только не крутил... вторые сутки уже кручу... то вверх вылазит, то
вбок...
Никто не может подсказать?
Спасибо.

McRain

unread,
Jun 26, 2008, 7:51:05 PM6/26/08
to ruFlex
Поправка - renderCanvas правильно ложится.... проблема в srcImage,
если к примеру размер картинки ш300 х в500, а максимальная ширина
отображаемая должна быть не более 300 (равно как и высота), то
srcImage ставит высоту в 300 но и ширину в 300... если
maintainAspectRatio=false то нарушается правильность отображения...
Вобщем надо как то заставить srcImage плотно облегать source.

McRain

unread,
Jun 30, 2008, 8:09:09 AM6/30/08
to ruFlex
Кто то может подсказать ? Очень надо.
http://testgallery.freehostia.com/lolbuilder.html
Справа видно границы Canvas и Images - нужно добиться либо плотного
заполнения картинкой Canvas либо плотного облегания содержимого....
На данный момент код следующий:
<mx:Canvas id="editorDesk" width="100%" height="100%" maxWidth="550"
maxHeight="550">
<mx:Canvas id="renderCanvas"
horizontalCenter="0" verticalCenter="0" borderThickness="1"
borderStyle="solid">
<mx:Image horizontalCenter="0" verticalCenter="0"
id="srcImage"
maxWidth="{editorDesk.width-50}"
maxHeight="{editorDesk.height-50}"
baseline="1" resizeEffect="{imgResize}" scaleContent="true"/>
</mx:Canvas>
</mx:Canvas>
Было перепробовано много вариантов: результат или хуже или такой же.
Надеюсь на помощь.
Спасибо.

Ilja Panin

unread,
Jun 30, 2008, 8:16:28 AM6/30/08
to ruf...@googlegroups.com
ты неможешь заставить легким способом ресайзить канвас под конкретные
размеры картинки (не Image). Размеры Image и картинки никак адекватно
не связаны с собой.

Опиши конкретную задачу, чего тебе нужно добится )

--
Ilja Panin
http://the33cows.com

Pirrest

unread,
Jun 30, 2008, 8:24:08 AM6/30/08
to ruf...@googlegroups.com
А забиндить размер канваса на размер картинки не пробовали?


<mx:Canvas id="editorDesk" width="100%" height="100%" maxWidth="550"
maxHeight="550">
               <mx:Canvas id="renderCanvas"
                       horizontalCenter="0" verticalCenter="0" borderThickness="1"
                        borderStyle="solid" width="{srcImage.width}" height="{srcImage.height}">

McRain

unread,
Jun 30, 2008, 8:30:31 AM6/30/08
to ruFlex
Нужно чтобы текст, накладываемый сверху картинки (а именно нижний) не
вылазил за границы картинки. А то при захвате получается черное
пространство... на некоторых фото все нормально, где соотношение
сторон видимо подходящее... Рендрировать в png не выход... получается
текст на прозрачной области... Если возможность узнать размер
BitmapData а не Images?
Вот как по ссылке - неправильно.... черт бы ее побрал..
http://testgallery.freehostia.com/gfcaption.php?f=1214829014.jpg

McRain

unread,
Jun 30, 2008, 8:34:46 AM6/30/08
to ruFlex
Пробовал... в том то и проблема что это Image не облегает плотно свой
source .... вернее облегает но не все... причем соотношение сторон
какое то дикое ему нравится... Image и не дает Canvas плотно обжать
картинку... Адобе что-то пишет про определенные попорции но нутром
чую что это у меня ручки кривые... или знаний маловато... Три дня
впустую продолбался с утра до вечера... А результат 0... Картинки,
дело в том, что могут иметь разное соотношение сторон...

On 30 июн, 15:24, Pirrest <pirr...@gmail.com> wrote:
> А забиндить размер канваса на размер картинки не пробовали?
>
> <mx:Canvas id="editorDesk" width="100%" height="100%" maxWidth="550"
> maxHeight="550">
> <mx:Canvas id="renderCanvas"
> horizontalCenter="0" verticalCenter="0"
> borderThickness="1"
> borderStyle="solid"* width="{srcImage.width}"
> height="{srcImage.height}"*>
Reply all
Reply to author
Forward
0 new messages