本文整理汇总了C#中INyARRaster.getBufferType方法的典型用法代码示例。如果您正苦于以下问题:C# INyARRaster.getBufferType方法的具体用法?C# INyARRaster.getBufferType怎么用?C# INyARRaster.getBufferType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类INyARRaster
的用法示例。
在下文中一共展示了INyARRaster.getBufferType方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: createFilter
protected IFilter createFilter(INyARRaster i_in, INyARRaster i_out)
{
if (i_in.getBufferType() == NyARBufferType.INT1D_GRAY_8)
{
switch (i_out.getBufferType())
{
case NyARBufferType.BYTE1D_B8G8R8_24:
return new Rgb2HsvFilter_BYTE1D_B8G8R8_24();
default:
break;
}
}
throw new NyARException();
}
示例2: onePixel
protected override bool onePixel(int pk_l, int pk_t, double[] cpara, INyARRaster o_out)
{
BitmapData in_bmp = this._ref_raster.lockBitmap();
int in_w = this._ref_raster.getWidth();
int in_h = this._ref_raster.getHeight();
//ピクセルリーダーを取得
double cp0 = cpara[0];
double cp3 = cpara[3];
double cp6 = cpara[6];
double cp1 = cpara[1];
double cp4 = cpara[4];
double cp7 = cpara[7];
int out_w = o_out.getWidth();
int out_h = o_out.getHeight();
double cp7_cy_1 = cp7 * pk_t + 1.0 + cp6 * pk_l;
double cp1_cy_cp2 = cp1 * pk_t + cpara[2] + cp0 * pk_l;
double cp4_cy_cp5 = cp4 * pk_t + cpara[5] + cp3 * pk_l;
int r, g, b, p;
switch (o_out.getBufferType())
{
case NyARBufferType.INT1D_X8R8G8B8_32:
int[] pat_data = (int[])o_out.getBuffer();
p = 0;
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
//
pat_data[p] = Marshal.ReadInt32(in_bmp.Scan0, (x * 4 + y * in_bmp.Stride));
//r = (px >> 16) & 0xff;// R
//g = (px >> 8) & 0xff; // G
//b = (px) & 0xff; // B
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
//pat_data[p] = (r << 16) | (g << 8) | ((b & 0xff));
//pat_data[p] = px;
p++;
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
this._ref_raster.unlockBitmap();
return true;
default:
if (o_out is NyARBitmapRaster)
{
NyARBitmapRaster bmr = (NyARBitmapRaster)o_out;
BitmapData bm = bmr.lockBitmap();
p = 0;
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
int pix = Marshal.ReadInt32(in_bmp.Scan0, (x * 4 + y * in_bmp.Stride));
Marshal.WriteInt32(bm.Scan0, ix * 4 + iy * bm.Stride, pix);
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
p++;
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
bmr.unlockBitmap();
this._ref_raster.unlockBitmap();
return true;
}
else if (o_out is INyARRgbRaster)
{
//ANY to RGBx
INyARRgbPixelDriver out_reader = ((INyARRgbRaster)o_out).getRgbPixelDriver();
//.........这里部分代码省略.........
示例3: onePixel
protected override bool onePixel(int pk_l, int pk_t, double[] cpara, INyARRaster o_out)
{
Color32[] in_pixs = (Color32[])this._ref_raster.getBuffer();
int in_w = this._ref_raster.getWidth();
int in_h = this._ref_raster.getHeight();
//ピクセルリーダーを取得
double cp0 = cpara[0];
double cp3 = cpara[3];
double cp6 = cpara[6];
double cp1 = cpara[1];
double cp4 = cpara[4];
double cp7 = cpara[7];
int out_w = o_out.getWidth();
int out_h = o_out.getHeight();
double cp7_cy_1 = cp7 * pk_t + 1.0 + cp6 * pk_l;
double cp1_cy_cp2 = cp1 * pk_t + cpara[2] + cp0 * pk_l;
double cp4_cy_cp5 = cp4 * pk_t + cpara[5] + cp3 * pk_l;
int p;
int step,offset;
//flip Virtical
switch (o_out.getBufferType())
{
case NyARBufferType.INT1D_X8R8G8B8_32:
int[] pat_data = (int[])o_out.getBuffer();
p = 0;
if(this._is_inv_v){
offset=in_w*(in_h-1);
step=-in_w;
}else{
offset=0;
step=in_w;
}
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
Color32 pix=in_pixs[x + offset+step*y];
//
pat_data[p] = ((pix.r << 16) & 0xff)|((pix.g << 8) & 0xff)| pix.b;
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
p++;
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
return true;
case NyARBufferType.OBJECT_CS_Unity:
Color32[] out_buf = (Color32[])(((INyARRgbRaster)o_out).getBuffer());
if(this._is_inv_v==((NyARUnityRaster)o_out).isFlipVirtical()){
offset=in_w*(in_h-1);
step=-in_w;
}else{
offset=0;
step=in_w;
}
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
int ys=out_h-1-iy;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
out_buf[ix+ys*out_w]=in_pixs[x + offset+step*y];
//
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
return true;
//.........这里部分代码省略.........
示例4: NyARVectorReader_INT1D_GRAY_8
public NyARVectorReader_INT1D_GRAY_8(INyARRaster i_ref_raster)
{
Debug.Assert(i_ref_raster.getBufferType() == NyARBufferType.INT1D_GRAY_8);
this._ref_buf = (int[])(i_ref_raster.getBuffer());
this._ref_size = i_ref_raster.getSize();
}
示例5: onePixel
protected override bool onePixel(int pk_l, int pk_t, double[] cpara, INyARRaster o_out)
{
int in_w = this._ref_raster.getWidth();
int in_h = this._ref_raster.getHeight();
byte[] i_in_buf = (byte[])this._ref_raster.getBuffer();
//ピクセルリーダーを取得
double cp0 = cpara[0];
double cp3 = cpara[3];
double cp6 = cpara[6];
double cp1 = cpara[1];
double cp4 = cpara[4];
double cp7 = cpara[7];
int out_w = o_out.getWidth();
int out_h = o_out.getHeight();
double cp7_cy_1 = cp7 * pk_t + 1.0 + cp6 * pk_l;
double cp1_cy_cp2 = cp1 * pk_t + cpara[2] + cp0 * pk_l;
double cp4_cy_cp5 = cp4 * pk_t + cpara[5] + cp3 * pk_l;
int r, g, b, p;
switch (o_out.getBufferType())
{
case NyARBufferType.INT1D_X8R8G8B8_32:
int[] pat_data = (int[])o_out.getBuffer();
p = 0;
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
int bp = (x + y * in_w) * 4;
r = (i_in_buf[bp + 2] & 0xff);
g = (i_in_buf[bp + 1] & 0xff);
b = (i_in_buf[bp + 0] & 0xff);
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
pat_data[p] = (r << 16) | (g << 8) | ((b & 0xff));
p++;
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
return true;
default:
//ANY to RGBx
if (o_out is INyARRgbRaster)
{
INyARRgbPixelDriver out_reader = ((INyARRgbRaster)o_out).getRgbPixelDriver();
for (int iy = 0; iy < out_h; iy++)
{
//解像度分の点を取る。
double cp7_cy_1_cp6_cx = cp7_cy_1;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5;
for (int ix = 0; ix < out_w; ix++)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
int bp = (x + y * in_w) * 4;
r = (i_in_buf[bp + 2] & 0xff);
g = (i_in_buf[bp + 1] & 0xff);
b = (i_in_buf[bp + 0] & 0xff);
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
out_reader.setPixel(ix, iy, r, g, b);
}
cp7_cy_1 += cp7;
cp1_cy_cp2 += cp1;
cp4_cy_cp5 += cp4;
}
return true;
}
break;
}
return false;
}
示例6: multiPixel
protected override bool multiPixel(int pk_l, int pk_t, double[] cpara, int i_resolution, INyARRaster o_out)
{
int res_pix = i_resolution * i_resolution;
int[] rgb_tmp = this.__pickFromRaster_rgb_tmp;
int in_w = this._ref_raster.getWidth();
int in_h = this._ref_raster.getHeight();
INyARRgbPixelDriver i_in_reader = this._ref_raster.getRgbPixelDriver();
//ピクセルリーダーを取得
double cp0 = cpara[0];
double cp3 = cpara[3];
double cp6 = cpara[6];
double cp1 = cpara[1];
double cp4 = cpara[4];
double cp7 = cpara[7];
double cp2 = cpara[2];
double cp5 = cpara[5];
int out_w = o_out.getWidth();
int out_h = o_out.getHeight();
switch (o_out.getBufferType())
{
case NyARBufferType.INT1D_X8R8G8B8_32:
int[] pat_data = (int[])o_out.getBuffer();
int p = (out_w * out_h - 1);
for (int iy = out_h - 1; iy >= 0; iy--)
{
//解像度分の点を取る。
for (int ix = out_w - 1; ix >= 0; ix--)
{
int r, g, b;
r = g = b = 0;
int cy = pk_t + iy * i_resolution;
int cx = pk_l + ix * i_resolution;
double cp7_cy_1_cp6_cx_b = cp7 * cy + 1.0 + cp6 * cx;
double cp1_cy_cp2_cp0_cx_b = cp1 * cy + cp2 + cp0 * cx;
double cp4_cy_cp5_cp3_cx_b = cp4 * cy + cp5 + cp3 * cx;
for (int i2y = i_resolution - 1; i2y >= 0; i2y--)
{
double cp7_cy_1_cp6_cx = cp7_cy_1_cp6_cx_b;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2_cp0_cx_b;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5_cp3_cx_b;
for (int i2x = i_resolution - 1; i2x >= 0; i2x--)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
if (x < 0) { x = 0; } else if (x >= in_w) { x = in_w - 1; }
if (y < 0) { y = 0; } else if (y >= in_h) { y = in_h - 1; }
i_in_reader.getPixel(x, y, rgb_tmp);
r += rgb_tmp[0];
g += rgb_tmp[1];
b += rgb_tmp[2];
cp7_cy_1_cp6_cx += cp6;
cp1_cy_cp2_cp0_cx += cp0;
cp4_cy_cp5_cp3_cx += cp3;
}
cp7_cy_1_cp6_cx_b += cp7;
cp1_cy_cp2_cp0_cx_b += cp1;
cp4_cy_cp5_cp3_cx_b += cp4;
}
r /= res_pix;
g /= res_pix;
b /= res_pix;
pat_data[p] = ((r & 0xff) << 16) | ((g & 0xff) << 8) | ((b & 0xff));
p--;
}
}
return true;
default:
//ANY to RGBx
if (o_out is INyARRgbRaster)
{
INyARRgbPixelDriver out_reader = ((INyARRgbRaster)o_out).getRgbPixelDriver();
for (int iy = out_h - 1; iy >= 0; iy--)
{
//解像度分の点を取る。
for (int ix = out_w - 1; ix >= 0; ix--)
{
int r, g, b;
r = g = b = 0;
int cy = pk_t + iy * i_resolution;
int cx = pk_l + ix * i_resolution;
double cp7_cy_1_cp6_cx_b = cp7 * cy + 1.0 + cp6 * cx;
double cp1_cy_cp2_cp0_cx_b = cp1 * cy + cp2 + cp0 * cx;
double cp4_cy_cp5_cp3_cx_b = cp4 * cy + cp5 + cp3 * cx;
for (int i2y = i_resolution - 1; i2y >= 0; i2y--)
{
double cp7_cy_1_cp6_cx = cp7_cy_1_cp6_cx_b;
double cp1_cy_cp2_cp0_cx = cp1_cy_cp2_cp0_cx_b;
double cp4_cy_cp5_cp3_cx = cp4_cy_cp5_cp3_cx_b;
for (int i2x = i_resolution - 1; i2x >= 0; i2x--)
{
//1ピクセルを作成
double d = 1 / (cp7_cy_1_cp6_cx);
int x = (int)((cp1_cy_cp2_cp0_cx) * d);
int y = (int)((cp4_cy_cp5_cp3_cx) * d);
//.........这里部分代码省略.........