zed писал(а):Про рандомную запись тут только вы и прожужжали все уши, я про это не говорил и никогда не имел в виду (между прочим)
Между прочим, просьба обьяснить мне - каким образом Вы собираетесь
линейно клеить мелкий квадрат (тайл) в большой квадрат (составляемую карту), если вклеивание линейно приведет ко клейке
линии, а не
квадрата?
Квадрат следует клеить так:
1. сперва записывается первая пачка-линия пикселей из тайла (256 пикс);
2. потом пропускаем число "пустых" пикселей, равное (длина клеемой карты минус 256) - чтобы попасть на начало второй линии из тайла в большой карте;
3. записываем вторую линию пикселей из тайла (256 пикс);
4. пропускаем очередное число "пустых" пикселей, равное (длина клеемой карты минус 256) - чтобы попасть на начало третьей линии из тайла в большой карте;
5. повторяем, пока не кончится тайл (256 раз, ака 256 линий вклейки в отдельно взятом тайле, ака 256 рандомных доступов к файлу-приемнику на каждый клеемый тайл).
Ваш (и мой) логи показывают совершенно другую картину (а именно -
линейную запись без пропусков по типу п2, п4 итд) - что доказывает наличие ВСЕГО предварительно собранного битмапа в памяти, и факт
непрерывной записи на базе оного с попутным утаптыванием в жпег. Это именно то, что я Вам твержу уже на протяжении последней пары дней. Мне таки продолжать разжевывать всю глубину Вашего заблуждения? Извольте...
..разумеется, для клейки с пропусками - файл-приемник УЖЕ должен существовать, причем существовать в своем полном размере (чтобы ненароком не вылететь в OUT_OF_BOUNDS при клейке очередной линии). Но из Вашего лога опять же следует, что файл-приемник создается таки с
нулевой длиной, и далее пропорционально растет согласно сдампливаемым в него данным, и делает он это
разово и по порядку - в полнейшем соответствии с логикой работы libJPEG (сорцы свободно доступны всем заинтересованным желающим).
zed писал(а):А изначально то разговор шёл о обработке JPG на венике, а не в памяти. Вы упорно утверждали, что вначале нужно сразу ВСЕ данные загрузить в память, а уже затем их записать в JPG.
Скажем так - это Вы голословно начали утверждать обратное, а я - обоснованно и на примерах оспорил.
Изначально я вообще
не предлагал клеить в форматы, подразумевающие динамическое сжатие (см.пост с описанием алгоритма). Более того - я продолжаю утверждать, что описанный алгоритм безусловно не сработает при составлении ЖПЕГа.
zed писал(а):В своём логе я показал, что загружать ВСЕ данные сразу нет необходимости
Ваш (и мой) лог показывает
разовый и линейный дамп уже сформированной в памяти ЖПЕГ-структуры на диск. Ничего более этого.
zed писал(а):можно их подгружать (а уже записанное выгружать) по ходу записи в JPG.
Google: "forking threads" (примерно 2 680 000 результатов найдено...)
zed писал(а):Считаю разговор законченным.
Аргументы закончились?