Вверх ↑
Этот топик читают: Гость
Ответов: 1536
Рейтинг: 176
#1: 2013-01-16 20:54:34 ЛС | профиль | цитата
Нужна помощь. Картинки, разброс сторон от 256 до 7000 пикселей, нужно разместить (склеить) одну за другой по вертикали вниз и сохранить в одну единую картинку. Своеобразный фотоколлаж. Не понимаю как это реализовать, кроме сохранения. С виду простая задача, но что-то ничего в голову не идёт.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 1161
Рейтинг: 160
#2: 2013-01-16 22:45:32 ЛС | профиль | цитата
Можно как-то так.
карма: 0

1
файлы: 1img.sha [2.5KB] [192]
Голосовали:ser_davkin
Гость
Ответов: 17029
Рейтинг: 0
#3: 2013-01-17 01:53:55 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2025-01-20 18:36:16
карма: 0

0
Ответов: 1536
Рейтинг: 176
#4: 2013-01-17 11:03:13 ЛС | профиль | цитата
LainX, ага, концепция понятна. Т.е. прежде, необходимо узнать максимально-возможную ширину, а затем и сумму высот всех вставляемых картинок, для создания размера будущей картинки. Но, вот проблема, компонент Bitmap ограничен в размерности ~8000x8000.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 258
Рейтинг: -27
#5: 2013-01-17 11:07:05 ЛС | профиль | цитата
Cubone писал(а):
Bitmap ограничен


картинка получится 256 мб, если 8000*8000*(32/8) (bit->byte)

кажется есть системные ограничения, но я не знаю почему в bitmap 8000x8000 ограничения
карма: 0

0
Ответов: 1536
Рейтинг: 176
#6: 2013-01-17 14:22:07 ЛС | профиль | цитата
Ладно, снимаю вопрос, всем спасибо.
------------ Дoбавленo в 14.22:
Вот, оптимизировал под себя, возможно кому-то пригодиться, правда ограничения никто не отменял.
Add(MainForm,14384415,154,224)
{
}
Add(Math,5135760,266,238)
{
OpType=39
Point(doClear)
link(onResult,15746892:doWidth,[(383,244)(383,307)])
link(Op1,9200381:ImageWidth,[])
link(Op2,5135760:Result,[(279,226)(306,226)(306,282)(272,282)])
}
Add(Math,15946600,259,301)
{
Point(doClear)
link(onResult,7523957:doEvent1,[])
link(Op1,9200381:ImageHeight,[])
link(Op2,15946600:Result,[(272,289)(299,289)(299,347)(265,347)])
}
Add(Img_Bmp,12923560,399,371)
{
Point(Y)
link(onDraw,12662533:doLoad,[])
link(Bitmap,13453177:Var2,[])
link(SourceBitmap,9200381:Bitmap,[(412,358)(258,358)])
link(Y,1172193:Value2,[(419,345)(356,345)])
}
Add(Image,12662533,441,371)
{
Width=392
Height=273
Align=5
link(Bitmap,13453177:Var3,[(447,334)])
}
Add(GetDataEx,13453177,399,329)
{
link(Data,15746892:Bitmap,[])
}
Add(DropFile,2437532,154,175)
{
link(onDropFile,9586542:doEvent1,[])
}
Add(Img_Loader,9200381,252,175)
{
Point(ImageHeight)
Point(ImageWidth)
}
Add(PaintBox,15746892,399,287)
{
Left=535
Top=440
Point(doWidth)
Point(doHeight)
Point(Height)
}
Add(Hub,9586542,203,175)
{
OutCount=4
link(onEvent1,9200381:doLoad,[])
link(onEvent2,5135760:doOperation,[(246,188)(246,244)])
link(onEvent3,15946600:doOperation,[(238,195)(238,307)])
link(onEvent4,12923560:doDraw,[(228,202)(228,377)])
}
Add(MemFIFO,1172193,343,266)
{
Default=Integer(0)
}
Add(Hub,7523957,315,301)
{
link(onEvent1,1172193:doValue,[(336,307)(336,272)])
link(onEvent2,15746892:doHeight,[])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 258
Рейтинг: -27
#7: 2013-01-17 15:08:01 ЛС | профиль | цитата
[offtop]ограничение на 256 ОЗУ стоит я так понял? сейчас почти у всех >512 ОЗУ , почему разработчики не установят системные ограничениями (16000x16000x32 (1GB))[/offtop]
карма: 0

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)