Вверх ↑
Ответов: 265
Рейтинг: 19
#1: 2026-02-25 14:52:06 ЛС | профиль | цитата
Gitarist писал(а):
Помогите составить логический блок, таким образом, чтобы если загружается картинка большего размера то блок бы исправлял размеры картинки пропорционально

Я использовал схему Леонида для преобразования больших картинок до размера 640х480. На выходе получается не больше 640 или 480, сохраняя пропорции оригинала. Думаю, переделать модуль под себя Вам не составит труда.
Add(MultiElementEx,13038381,259,105)
{
@Hint=#24:Масштабирование картинки|
}
BEGIN_SDK
Add(EditMultiEx,2275589,21,21)
{
WorkCount=#8:doEvent1|
EventCount=#8:onEvent1|
Width=454
link(doEvent1,4596410:doEvent1,[(48,27)(48,97)])
}
Add(Hub,1084101,392,154)
{
InCount=2
OutCount=1
link(onEvent1,2275589:onEvent1,[(427,160)(427,27)])
}
Add(Hub,4596410,70,91)
{
link(onEvent1,5990022:doLoad,[(113,97)(113,34)])
link(onEvent2,16274214:doCompare,[])
}
Add(Bitmap,5990022,336,28)
{
Point(Width)
Point(Height)
}
Add(MultiElement,4605336,343,98)
{
@Hint=#33:Расчет ширины и высоты от Леонида|
link(Data1,5332020:Var2,[])
link(Data2,5447027:Var2,[])
}
BEGIN_SDK
Add(EditMulti,5210623,21,7)
{
WorkCount=1
DataCount=2
VarCount=2
Width=188
Height=116
link(doWork1,3571474:doCalc,[(31,13)(31,55)])
link(Var1,7580995:Result,[(27,102)(104,102)])
link(Var2,4592731:Result,[(34,110)(153,110)])
}
Add(MathParse,3571474,42,49)
{
MathStr="640/max(%1,%2)"
link(onResult,7580995:doOperation,[])
link(X1,12003466:Var2,[])
link(X2,13807864:Var2,[])
}
Add(Math,7580995,98,49)
{
OpType=2
ResultType=0
link(onResult,4592731:doOperation,[])
link(Op1,12003466:Var3,[(104,34)])
link(Op2,4922545:Var2,[])
}
Add(Math,4592731,147,49)
{
OpType=2
ResultType=0
link(Op1,13807864:Var3,[(153,28)])
link(Op2,4922545:Var3,[(160,40)])
}
Add(GetDataEx,12003466,42,29)
{
Angle=3
link(Data,5210623:Data1,[(27,34)])
}
Add(GetDataEx,13807864,49,23)
{
Angle=3
link(Data,5210623:Data2,[(34,28)])
}
Add(GetDataEx,4922545,105,35)
{
Angle=3
link(Data,3571474:Result,[(80,40)(80,88)(48,88)])
}
END_SDK
Add(ResizeEx,12537649,336,154)
{
link(onResult,1084101:doEvent1,[])
link(Bitmap,2529026:Var2,[])
link(Width,4605336:Var1,[])
link(Height,4605336:Var2,[])
}
Add(If_else,16274214,119,98)
{
Type=2
Op2=Integer(640)
link(onTrue,10609094:doEvent1,[])
link(onFalse,13722574:doCompare,[])
link(Op1,5332020:Var1,[(125,75)])
}
Add(GetDataEx,5332020,343,70)
{
link(Data,5990022:Width,[])
}
Add(If_else,13722574,168,105)
{
Type=2
Op2=Integer(480)
link(onTrue,10609094:doEvent2,[])
link(onFalse,2371551:doData,[])
link(Op1,5447027:Var1,[(174,82)])
}
Add(GetDataEx,5447027,350,77)
{
link(Data,5990022:Height,[])
}
Add(DoData,2371551,217,112)
{
link(onEventData,1084101:doEvent2,[(271,118)(271,167)])
link(Data,2529026:Var1,[(223,89)])
}
Add(GetDataEx,2529026,336,84)
{
link(Data,5990022:Bitmap,[])
}
Add(Hub,10609094,287,98)
{
InCount=2
link(onEvent1,4605336:doWork1,[])
link(onEvent2,12537649:doResize,[(319,111)(319,160)])
}
END_SDK
карма: 3

1
Голосовали:Gitarist
Редактировалось 1 раз(а), последний 2026-02-25 14:55:38