Интересует вопрос, как сделать прозачную картинку. Помню делал такое, что подгружал картинку и ставил определенный цвет прозрачным. И картнинка была прозрачной где этот цвет был. Сейчас почему-то не могу найти пример как это делать. А исходники потерялись.
Glega, через POST это нужно смотреть как раз мультизагрузчик (я давал ссылку на него ранее), и там уже смотреть, какой на самом деле пакет приходит и какие поля... но здесь я видимо делал по-простому, передавал имя в заголовке... как самое простое %)...
а вот можно как-нибудь передать name через POST, или нужно будет к адрессу приписывать и имя? Я подумал, нужно еще какую-нибудь защиту сделать, чтобы не наотправляли запросов.
и вот как применять (php я не подскажу, давно за него не садился):
var bitmapData:BitmapData = new BitmapData(30, 30);
var byteArray:ByteArray = PNGEncoder.encode(bitmapData);
var loader:MultipartURLLoader = new MultipartURLLoader();
loader.addEventListener(Event.COMPLETE, onUploadComplete);
loader.addFile(byteArray, 'photo.png', 'photo');
loader.load('http;//site.ru/file.php');
Работает скрипт, но теперь как мне отослать с картинкой еще имя файла, чтобы потом прицепить его к пользователю. Просто в myrequest.data запихиваем imageByteArray
250 мб, про базу данных ничего не сказали)) Просто у пользователя будет возможность создавать других юнитов. Боюсь забьют память)) А есть где-нибудь нормальный пример для сохранения картинки через as3+php, чтобы сохранилось с прозрачностью?
Glega, сколько дискового пространства? обычно под БД выделяют меньше свободного места... ты говоришь, что у тебя картинка 30x30, так она в PNG будет весить 3Кб... так на 1 Мб ты сможешь ~300 пользователей создать XD... и когда создаешь пользователя, он же регистрируется, значит, как например на фане, картинке можно задать имя самого пользователя, и ссылку на нее в базе хранить нет необходимости %)...
И вот не знаю как лучше сделать, записывать в базу все, либо картинку сохранять на сервере, еще нужно сгенерировать имя для нее, и в базу записывать остальные данные.
Я хочу сделать, так - игрок рисует своего персонажа, для этого персонажа будут некоторые характеристики. Пока что использую бесплатный хостинг, где ограничено дисковое пространство. Но вроде в базе данных можно хранить много информации, если не ошибаюсь.
Просто помню, что ещё на втором AS пытался сохранять в массив... Так даже небольшая картинка больше Мб места занимала... А это чудо надо ещё переслать, обработать и сохранить.
Извиняюсь... Зачем массив, если AS 3.0 имеет ByteArray. Тем более, что пересылка и хранение данных в массиве - это более ресурсоёмкий способ. И зачем хранить картинку в базе MySQL. Там, обычно, хранят только ссылку на картинку.
Glega, картинка 30x30 будет весить может 1-2 Кб, и в базе она будет занимать может даже больше... но если тебе больше нравиться вариант с базой, то вот продолжение, как из той строки создать картинку:
//str - полученная строка
var arr:Array = str.split(',');
var w:int = arr[0];
var h:int = arr[1];
var bitmapData:BitmapData = new BitmapData(w, h, true, 0xFFFFFFFF);
var c:int = 2;
for (var i:int = 0; i < h; i++) {
for (var j:int = 0; j < w; j++) {
bitmapData.setPixel32(j, i, arr[c]);
c++;
}
}
addChild(new Bitmap(bitmapData));
я помню что в MySQL есть формат данных связанный с массивом, просто пока использую бесплатный хост, там мало место для хранения картинок. А картинка будет небольшая 30х30 где-то. И меня интересует, можно ли отправить массив в пхп, он там сохранит в базу данных. И затем если я опять ее загружу, будет ли она опять прозрачной
Glega, смотря, что именно нужно... в AS3 есть классы PNGEncoder, JPEGEncoder и прочие, которые позволяют создать из BitmapData массив байтов (собственно реальную картинку).. а потом эту картинку можно передать на сервер, где PHP-код сохранит эту картинку в какую-нибудь папку
вообще-то у картинки есть альфа-канал, и у каждого пикселя есть значение прозрачности... если нужно задать пиксель прозрачный, то можно что-то такое написать: