Вход

Просмотр полной версии : векторизация картинок


HN4E7O
27.10.2006, 13:30
Сорри если не по адресу.... если что пусть админы перенесут куды нада.... Нада сделать чтобы усер загружал картинку... флаш её перелапачивал в вектор...и загружал бы при помощи пхп в базу

ну и когда нада делалбы обратное... тоесть берёт в базе код и показывает как картинку

подозреваю что чтото с bitMape , но не понимать с какой стороны ко всему этому подходить... если можно посмотреть что нит такое - чудестно.... или хотябы почитать

если сделаю, выложу тута... так как сдаётся мне интерестная штука

спасибо за любую помощь

MyXus
27.10.2006, 15:59
сначало надо придумать как написать алгоритм трассировки. Думаю, стоит подойти к этой задаче через полгодика -)

HN4E7O
27.10.2006, 16:06
я написал чтото похожее но.... если фото более 22х22пх флаш просто прозревает... может кто поправит

import flash.display.BitmapData;

var myBitmapData:BitmapData = BitmapData.loadBitmap("1");// 1 eto foto
trace(myBitmapData instanceof BitmapData);

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());
mc._width = 22;// priwlos ymenwit 4tobi flash ne prozreval
mc._height = 22;
var cuantoPixel:Number = (mc._width*mc._height)+1;
trace(mc._width+" "+mc._height+" = "+cuantoPixel)

var pixelX:Number = 0;
var pixelY:Number = 0;
_root.createTextField("txt",2,500,0,100,500)

for(i=0; i<cuantoPixel; i++){
var color:String = new String( myBitmapData.getPixel(pixelX, pixelY).toString(16));
_root.txt.text+= "0x" +color;
pixelX++;
if(pixelX > mc._width){
pixelX=0;
pixelX++;
}
}

iNils
27.10.2006, 19:01
А причем тут вектор?

Dendroid
27.10.2006, 19:03
А причем тут вектор?
Я предполагаю, что вместо векторизовать следует читать сериализовать. ;)
Мне вот больше интересно, что значит прозревает...

FourSide
27.10.2006, 19:04
А причем тут вообще флэш? Делается обычная HTML-форма с Submit'ом. Загружается картинка - сразу отсылается и сохраняется на сервере (с помощью того же PHP) - по мере необходимости показывается пользователю.

Зачем попиксельно сохранять в базу картинку? Потом опять напрягать проц отрисовывая её...

Или я не понял смысла задачи?

Kikasso
28.10.2006, 04:51
Чтобы флеш не прозревал, чтобы это не значило, надо наверное растянуть вычисления во времени. То есть ограничивать количество операций в единицу времени. Механизм трассировки примерно такой: берешь первый пиксел, определяешь его цвет и смотришь на соседние. Если цвет похож, добавляешь пиксел в цепочку. Когда все пикселы прощелкаешь, надо цепочки превратить в кривые безье. Та еще задачка.

Другой варинт - человек загружает картинку, а потом сам вручную по ней рисует.

miramax
28.10.2006, 05:32
2 HN4E7O
Может тебе поможет beginBitmapFill ?
2 Kikasso
Алгоритм хорошей трассировки - это даже для разработчиков Corel и Adobe сложная задача, врядли кто-то сделает что-то лучше во флеше.

HN4E7O
29.10.2006, 23:48
Во первых простите за задержку... запил )))


прозревает... значит вылазила обьява что лучше не продолжать а то твой компьютер будет работать медлено и тп....

Действительно как подметил Miramax правильнее было сказать трассировка а не векторизация... у меня вообще ужо с русским проблемы... так что прошу не серчать...

Проблему я для себя решил... придумав как обойтись бес трассировки... но как задачу всё таки хотелось бы решить... например чтобы при помощи вебкамеры снимать картинку и сохранять как jpg. Знаю что вебкамеры имеют опцию сохранения фоты, но была как то задача которую я так и не решил связанная с этим. Нада было одновременно снять фото и сохранить в базе плюс кучу текстовой инфо введёной усером.

Сейчас возникла проблема как сделать чтобы не зависимо от монитора фото, которое постоянно меняется и не находится в swf растягивалась бы на весь экран и не пексилизировалась.. Сайт делается для архитекторов у которых расширения типа 2048x1580 или чтойто типа того...

Всем спаcибо.

etc
30.10.2006, 00:28
Так в чём проблема? Я из текста нифига не понял…

Kikasso
30.10.2006, 02:33
2 miramax: А кому сейчас легко?
Задача сложная, но не запредельная. Куда не зайдешь, везде тебя просят ввести текст, нарисованый на картинке, и это картинка замылена от распознавалок. Если вообще так ставится вопрос, значит этих распознавалок бродит по сетке приличное количество, а распознавание текста безусловно начинается с его трассировки.
На чем делать - вопрос десятый, можно на стороне сервера, можно на стороне клиента. Флеш я думаю не треснет, я помню Corel Trace у нас работал под win3.11 на 8 метрах оперативки и 386 камне частотой 20MGz(ну примерно). Не говорю, что летало, но работало. Алгоритм с тех пор не сильно изменился, а компьютеры немножко помощнее стали. Задачу поставят - решим.

..Ну а тут я не понял вообще что автор хочет. Если сложность в том чтобы вебкамерой сделать фотку, растянуть ее 2048x1580 и чтобы к качеству было не подкопаться, тут я не советчик.

Базиль
31.10.2006, 18:35
При трассировке происходит заметная потеря качества изображения. Лучше тогда уж использовать фильтрацию, но это умеет и РНР - функция imagecopyresampled. А вот трассировка, тем более цветных изображений - задача отнюдь не тривиальная, тем более написать это на флэше. Во всяком случае, смотреться будет довольно уродливо.

Kikasso, не надо сравнивать скомпилированный Corel и интерпретатор ActionScript, совсем разные вещи. Флэш именно треснет от такого напряга.

Но если очень хочется - тогда в магазин за книжкой по компьютерной графике (не по фотошопу, а по программированию), там описаны методы нахождения границ и т.п. (с чего, собственно, трассировка и начинается). Увидишь этот ужос - расхочется. Честое слово.

flash33
01.11.2006, 11:03
Я думаю флеш не треснет, а попросит еще картинок, много картинок, цветных картинок.....
Подходить к решению вопроса нужно нетривиально, не руководствуясь учебниками а токма реалиями самого флеша. Забыли про метод Фрешхолд? Это почти готовая трассировка, ну может подработать ее надо малость(;)), но думаю собака там зарыта

miramax
01.11.2006, 11:17
Забыли про метод Фрешхолд? Это почти готовая трассировка, ну может подработать ее надо малость(;)), но думаю собака там зарытаА, собсна, чем занимается threshold по твоему?

mrspb
02.11.2006, 02:34
растягивать не сильно качественное изображение 800х600 с вебкамеры на два с половиной на полтора куска пикселов на проффесиональном монике - это не очень хорошая идея, даже в фотошопе простым скэйлом не обойдёшся... (имхо, типа)