// PixelManipulator をコピーする public PixelManipulator Clone(bool copyBytes = false) { PixelManipulator result = new PixelManipulator(); result.width = width; result.height = height; result.stride = stride; result.pixelSize = pixelSize; result.bytes = new byte[bytes.Length]; if (copyBytes) { Array.Copy(bytes, result.bytes, bytes.Length); } return result; }
// Bitmap オブジェクトから PixelManipulator を作成する public static PixelManipulator LoadBitmap(Bitmap bitmap) { if (bitmap == null) { return null; } PixelManipulator result = new PixelManipulator(); result.width = bitmap.Width; result.height = bitmap.Height; result.stride = _GetScanLineSize(bitmap, result.pixelFormat); result.pixelSize = Image.GetPixelFormatSize(result.pixelFormat) / 8; result.bytes = _GetPixels(bitmap, result.pixelFormat); return result; }