Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   вопрос по формуле или алгоритму... (http://zx-pk.ru/showthread.php?t=9197)

Sayman 4th January 2009 21:35

вопрос по формуле или алгоритму...
 
как можно зная размер файла спрайта, получить (как то подсчитать) его высоту и ширину? особенно если учесть что спрайт могет быть или 8на8 или 512 на 256 к примеру...как то можно или универсальной формулы нет?

TmK 5th January 2009 17:09

вопроса не понял...

GriV 5th January 2009 17:17

Ну если речь про спекк, то берёшь по размер X спрайта кратен 8 точкам.

- если спрайт чёрно белый то получается - длина файла N. Если N - число простое, то очевидно что имеем дело с спрайтом X=8, Y=N. Если N не простое, то делаешь X=2..N-1 и делишь Y=N/X. Как только получается Y - целое вероятно что это оно и есть и ты нашёл параметры спрайта. Если не нашлось такого целого Y что Y=N/X при любом X из этого диапазона то очевидно что алгоритм программы сбоен - потому что число не простое :-) Соотвественно будет получено несколько значений для X и Y. Однако надо понимать, что если например N=27 то возможны варианты X=3 Y=9 и X=9 Y=3, в этом случае нужно уже делать эвристический анализ на то где плавнее меняется содержимое ("кривой" по параметрам спрайт будет содержать скорее шум чем изображение).

- если спрайт цветной то всё то же самое за исключением того, что имеет место N = X*Y+(X/8*Y) - вторая часть отвечает за атрибуты.

Evgeny Muchkin 5th January 2009 21:19

Quote:

Originally Posted by TmK (Post 174241)
вопроса не понял...

+1 ;)

Клон 5th January 2009 21:33

:wink:+2

Shadow Maker 6th January 2009 01:39

Quote:

Originally Posted by Sayman (Post 174052)
как можно зная размер файла спрайта, получить (как то подсчитать) его высоту и ширину? особенно если учесть что спрайт могет быть или 8на8 или 512 на 256 к примеру...как то можно или универсальной формулы нет?

Никак не посчитаешь. Вон бери спрайт сканер какой-нить и визуально смотри. Потому шо спрайт у тебя он конечно кратный, а вот отличить 8x6 от 6x8 кроме как визуально никак.

Мужчинам с плюсами - флуд отставить.

Sayman 19th January 2009 15:33

спрайт без заголовка. например файл имеет размер 15360. как можно расчитать размеры спрайта имея только подобные данные...в это и заключается вопрос.
причём неорганичиваясь только на размерах экрана спектрума типа 32*192...

psb 19th January 2009 17:33

неужели до сих пор не очевидно, что 100% решения не существует? если бы у тебя была длина файла равная произведению 2х ПРОСТЫХ чисел, тогда варианта всего 2. а в общем случае - раскладывать длину на простые множители и пробовать все комбинации (в т.ч. с произведениями множителей). и каждую комбинацию визуально проверить!

возможно, это можно автоматизировать, анализируя изображение, но это сложно и тоже не даст 100% результата.

Sayman 20th January 2009 06:57

да я просто думал что за 10 лет местные знатоки придумали способ)))
ладно, спасиба.

Vitamin 20th January 2009 11:57

Quote:

Originally Posted by Sayman (Post 178095)
да я просто думал что за 10 лет местные знатоки придумали способ)))

Придумали. Sprite Tools называется.


All times are GMT +4. The time now is 21:03.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.