djyamato
17.11.2012, 14:35
Здравствуйте
Есть незатейливый фильтр
<languageVersion : 1.0;>
kernel HSLAdjust
< namespace : "com.quasimondo";
vendor : "Mario Klingemann";
version : 1;
description : "A kernel to adjust Hue, Saturation and Luminance of an image";
>
{
input image4 src;
output pixel4 dst;
parameter float hue
<
minValue: -3.14159;
maxValue: 3.14159;
defaultValue: 0.0;
>;
parameter float saturation
<
minValue: -10.0;
maxValue: 10.0;
defaultValue: 1.0;
>;
parameter float contrast
<
defaultValue :1.0;
minValue : 0.0;
maxValue : 10.0;
>;
parameter float brightness
<
defaultValue :1.0;
minValue : 0.0;
maxValue : 10.0;
>;
void
evaluatePixel()
{
dst = sampleNearest(src,outCoord());
float y = dst.r * 0.29900 + dst.g * 0.58700 + dst.b * 0.14400;
float u = - dst.r * 0.14714 - dst.g * 0.28886 + dst.b * 0.43600;
float v = dst.r * 0.61500 - dst.g * 0.51499 - dst.b * 0.10001;
float hueValue = atan( v, u ) + hue;
float saturationValue = length(float2( u,v)) * saturation;
u = cos( hueValue ) * saturationValue;
v = sin( hueValue ) * saturationValue;
y += 0.0;
dst.r = 0.970874 * y - 0.0591995 * u + 1.13983 * v;
dst.g = 0.970874 * y - 0.453834 * u - 0.580599 * v;
dst.b = 0.970874 * y + 1.97292 * u + 0.00000781528 * v;
dst.r = ((dst.r - 0.5)*contrast)+ 0.5;
dst.g = ((dst.g - 0.5)*contrast)+ 0.5;
dst.b = ((dst.b - 0.5)*contrast)+ 0.5;
//Brightness Filter
/* Simply multiply by a number more then 1 to increase
/ and a number less than 1 to decrease.
*/
dst.r = dst.r * brightness;
dst.g = dst.g * brightness;
dst.b = dst.b * brightness;
}
}
При подключении к проекту (в контроллере)
[Embed("assets/filters/HSBCFilter.pbk", mimeType="application/octet-stream")]
private var HSBCFilterClass:Class;
var HSBCShader:Shader = new Shader(new HSBCFilterClass() as ByteArray); // !!! это строка 36
imageCorrectModel.HSBCFilter=new ShaderFilter(HSBCShader);
вылетает ошибка
ArgumentError: Error #2004: Один из параметров указан неверно.
at flash.display::ShaderData/_setByteCode()
at flash.display::ShaderData()
at flash.display::Shader/set byteCode()
at flash.display::Shader()
at swiz.controllers::ImageCorrectController/initHandler()[D:\flex 4.6\RailDesigner\src\swiz\controllers\ImageCorrectController.as:36]
На 36й строке в коде контроллера ошибка возникает
Что я не упустил, подскажите пожалуйста
------------------------------------------------------
Прошу извинить, это моя невнимательность, я подключал .pbk вместо pbj
Есть незатейливый фильтр
<languageVersion : 1.0;>
kernel HSLAdjust
< namespace : "com.quasimondo";
vendor : "Mario Klingemann";
version : 1;
description : "A kernel to adjust Hue, Saturation and Luminance of an image";
>
{
input image4 src;
output pixel4 dst;
parameter float hue
<
minValue: -3.14159;
maxValue: 3.14159;
defaultValue: 0.0;
>;
parameter float saturation
<
minValue: -10.0;
maxValue: 10.0;
defaultValue: 1.0;
>;
parameter float contrast
<
defaultValue :1.0;
minValue : 0.0;
maxValue : 10.0;
>;
parameter float brightness
<
defaultValue :1.0;
minValue : 0.0;
maxValue : 10.0;
>;
void
evaluatePixel()
{
dst = sampleNearest(src,outCoord());
float y = dst.r * 0.29900 + dst.g * 0.58700 + dst.b * 0.14400;
float u = - dst.r * 0.14714 - dst.g * 0.28886 + dst.b * 0.43600;
float v = dst.r * 0.61500 - dst.g * 0.51499 - dst.b * 0.10001;
float hueValue = atan( v, u ) + hue;
float saturationValue = length(float2( u,v)) * saturation;
u = cos( hueValue ) * saturationValue;
v = sin( hueValue ) * saturationValue;
y += 0.0;
dst.r = 0.970874 * y - 0.0591995 * u + 1.13983 * v;
dst.g = 0.970874 * y - 0.453834 * u - 0.580599 * v;
dst.b = 0.970874 * y + 1.97292 * u + 0.00000781528 * v;
dst.r = ((dst.r - 0.5)*contrast)+ 0.5;
dst.g = ((dst.g - 0.5)*contrast)+ 0.5;
dst.b = ((dst.b - 0.5)*contrast)+ 0.5;
//Brightness Filter
/* Simply multiply by a number more then 1 to increase
/ and a number less than 1 to decrease.
*/
dst.r = dst.r * brightness;
dst.g = dst.g * brightness;
dst.b = dst.b * brightness;
}
}
При подключении к проекту (в контроллере)
[Embed("assets/filters/HSBCFilter.pbk", mimeType="application/octet-stream")]
private var HSBCFilterClass:Class;
var HSBCShader:Shader = new Shader(new HSBCFilterClass() as ByteArray); // !!! это строка 36
imageCorrectModel.HSBCFilter=new ShaderFilter(HSBCShader);
вылетает ошибка
ArgumentError: Error #2004: Один из параметров указан неверно.
at flash.display::ShaderData/_setByteCode()
at flash.display::ShaderData()
at flash.display::Shader/set byteCode()
at flash.display::Shader()
at swiz.controllers::ImageCorrectController/initHandler()[D:\flex 4.6\RailDesigner\src\swiz\controllers\ImageCorrectController.as:36]
На 36й строке в коде контроллера ошибка возникает
Что я не упустил, подскажите пожалуйста
------------------------------------------------------
Прошу извинить, это моя невнимательность, я подключал .pbk вместо pbj