Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Площадь заливки чернилами   Найти похожие ветки 

 
PiramidaHeiopz   (2012-03-11 21:03) [0]

Есть файл чб битмап со сложной заливкой (графика).Макс 8000х8000
печатается разными размерами.Хочется алгоритм высчета заполняемости.
К примеру печатаю 10х10см, высчет заполняемости - 3см2.
Какой алгоритм?
Узнать заполняемость.в фотошопе не знаю, писать свою прогу сколько пикселей черные от всех белых? узнаем процент, далее узнаем площадь печати 10х10=100см2 подводим проценты и узнаем сколько было залито чернилами.
Собственно и вопрос, как подсчитать сколько черных пикселей в битмапе...


 
Jeer ©   (2012-03-11 21:12) [1]

Ага, когда работал в фирме (1998 г) - "написал" прогу по расчету расхода "чернил" ( там были разные варианты по девайсам и по площади и виду "чернил").
В итоге фирма стала экономить на расходниках до 30%.
5% отдали мне - 500 бакинских в месяц.

"Пробуйте, непременно пробуйте" (С).


 
MBo ©   (2012-03-11 21:13) [2]

>как подсчитать сколько черных пикселей в битмапе
Медленно (для одноразовой задачи сгодится) - через Pixels, быстро - через Scanline


 
alexdn ©   (2012-03-11 21:14) [3]

Да, кстати интересно, сам думал задать подобный вопрос, т.е. можно ли узнать сколько заливается пикселей при заливке ограниченной области?


 
Jeer ©   (2012-03-11 21:18) [4]


> т.е. можно ли узнать сколько заливается пикселей при заливке
> ограниченной области?


Вопрос задан тех-неграмотно, перефразируй.


 
Anatoly Podgoretsky ©   (2012-03-11 21:20) [5]

> alexdn  (11.03.2012 21:14:03)  [3]

Для 10х10 никак, а вот для конкретной канвы запросто.


 
alexdn ©   (2012-03-11 21:30) [6]

> Anatoly Podgoretsky ©   (11.03.12 21:20) [5]
ну вот есть функция  canvas.FloodFill, как узнать сколько пикселей она зальёт..?


 
Игорь Шевченко ©   (2012-03-11 21:37) [7]

GetRegionData


 
PiramidaHeiopz   (2012-03-11 21:47) [8]

алгоритм то понятный, хотелось бы знать есть уже готовое, чем свое писать,
c нуля,

простейшее -
for x:=0 to xx...
for y:=0 to yy.canvas.
pixelz:=Pic.
if pixelz=0 then {black} inc(BlackCrash);
end;
end;

неужели фотошопе нет такой функции???


 
PiramidaHeiopz   (2012-03-11 21:51) [9]

функция нужна раз 10 в месяц
можно самому написать, только вопрос стандартный всл компонент
поддерживает 8000х8000 точек и
RGB (там только чб, файлы 60-100мб) и Grayscale ?
Делфи сейчас просто не установлен...


 
PiramidaHeiopz   (2012-03-12 17:37) [10]

всем спасибо, скачал делфи3, и написал!
быстро и с округлениями в виде DIV
пример работы, отчет проги

файл, заданная ширина 12см

All pixelz: 14506560
Wid Õ heigh: 3942x3680
Pixelz inked: 2687943
Inked: 18%
Height calc: 11
Print ploshad: 132sm.
Ploshad inked: 23sm.

заданная ширина 20 см
All pixelz: 57424000
Wid Õ heigh: 7760x7400
Pixelz inked: 6384577
Inked: 11%
Height calc: 19
Print ploshad: 380sm.
Ploshad inked: 41sm.


 
QAZ   (2012-03-12 18:04) [11]


> скачал делфи3, и написал!

мегареспект бро

если ты (вдруг) решил считать расход чернил,то в наше время это непроканает,ибо расход зависит исключительно от режима печати принтера


 
alexdn ©   (2012-03-12 18:39) [12]

> Игорь Шевченко ©   (11.03.12 21:37) [7]
> GetRegionData
глянул в инете и понял что вроде бы одной строкой не обойдёшься..


 
Димка На   (2012-03-12 20:11) [13]

Способ для фотошопа:
1. Открываем ЧБ картинку
2. Filter-Blur-Average
3. Нажимаем на Foreground Color (выбор основного цвета слева снизу)
4. Кликаем по картинке в любом месте
5. В поле "B" в HSB смотрим процент заполнения :)


 
Димка На   (2012-03-12 20:12) [14]

Он равен 100% - B


 
PiramidaHeiopz   (2012-03-12 21:03) [15]

QAZ
только в качестве ориентира "на сколько разные картинки жрут чернила",
а вернее абстрактное математическое сравнение нескольких картинок

Димка На
смысл в выделенной точке?
Нужно сумму всех пикселей


 
Дмитрий С ©   (2012-03-13 10:50) [16]


> Нужно сумму всех пикселей

Вот она:
((100 - B) * 8000 * 8000) / 100



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.065 c
15-1342559770
Германн
2012-07-18 01:16
2013.03.22
Интересное значение "свободного места на диске" наблюл давеча


15-1333744203
Юрий
2012-04-07 00:30
2013.03.22
С днем рождения ! 7 апреля 2012 суббота


15-1329337802
Юрий
2012-02-16 00:30
2013.03.22
С днем рождения ! 16 февраля 2012 четверг


2-1333351946
homeknight
2012-04-02 11:32
2013.03.22
Копирование TTreeView


2-1331024938
leklerk
2012-03-06 13:08
2013.03.22
Достаточно ли одного ADOConnection?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский