Просмотр полной версии : Определение цвета пикселя
kon_ivan
27.01.2010, 13:28
Здрасте) у меня есть jpg картинка. Нужно чтобы флеш ее загружал и определил, что в точке 100,100 цвет пикселя такойто. Как это сделать? Картинку гружу через loadMove, делаю BitmapData, а дальше? BitmapData нафигато создает прямоугольник, и даже если его делать прозрачным, он не определяет цвет какого нибудь пикселя? плиз хелп)
lexa2000lexa
27.01.2010, 13:35
в помощь getPixel и getPixel32
import flash.display.BitmapData;
var jpgContainer:MovieClip = createEmptyMovieClip("jpgContainer", 0);
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip("test.jpg", jpgContainer);
var bmd:BitmapData = new BitmapData(500, 500, true);
function onLoadInit(target:MovieClip):Void
{
bmd.draw(target);
onMouseMove = onMouseMoveHandler;
}
function onMouseMoveHandler():Void
{
trace("0x" + bmd.getPixel(_xmouse, _ymouse).toString(16));
}
kon_ivan
27.01.2010, 13:49
спасииибо)
Люди, а подскажите как as2 можно определить не код цвета а R, G и B
Выделяйте нужный канал из цвета.
var c:Number = 0xFFAACC;
var r:Number = c >> 16;
var g:Number = c >> 8 & 0xFF;
var b:Number = c & 0xFF;
import flash.display.BitmapData;
var jpgContainer:MovieClip = createEmptyMovieClip("jpgContainer", 0);
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip("avatar.jpg", jpgContainer);
var bmd:BitmapData = new BitmapData(499, 299, true);
function onLoadInit(target:MovieClip):Void {
bmd.draw(target);
}
//До сюда почти ничего не изменял
//Преобразование кода цвета в R G и B
function RGB(color:Number) {
R=(color >> 16) & 0xFF;
G=(color >> 8) & 0xFF;
B=(color) & 0xFF;
return R+":"+G+":"+B;
}
//Ну и создание матрицы цветов...
for (yc=0; yc<100; yc++) {
for (xc=0; xc<100; xc++) {
bmd.draw(target);
colore="0x"+bmd.getPixel(xc, yc).toString(16);
carr.text+=RGB(colore).toString(10)+",";
}
}
Не работает через FOR
Помогите плиз...
import flash.display.BitmapData;
var jpgContainer:MovieClip = createEmptyMovieClip("jpgContainer", 0);
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip("avatar.jpg", jpgContainer);
var bmd:BitmapData = new BitmapData(499, 299, true);
function onLoadInit(target:MovieClip):Void
{
bmd.draw(target);
var s:String = "";
for (var i:Number = 0; i < 100; i++)
{
for (var j:Number = 0; j < 100; j++)
{
s += colorToString(bmd.getPixel(j, i)) + " ";
}
}
tf.text = s;
}
function colorToString(color:Number):String
{
var r:Number = color >> 16 & 0xFF;
var g:Number = color >> 8 & 0xFF;
var b:Number = color & 0xFF;
return b + ":" + g + ":" + b;
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.