コード例 #1
0
        public string Process(byte[] originalBytes, out byte[] markedBytesArray, out byte[] unWaterMarkedBytesArray, out int[] markedIndexes, out int[] unMarkedIndexes)
        {
            var processor = new Processor(originalBytes, _mode);

            markedBytesArray        = processor.GetWaterMarkedBytes(_waterMark);
            unWaterMarkedBytesArray = processor.ExtractWaterMark(markedBytesArray);

            markedIndexes   = processor.InseredWaterMarkIndexes.ToArray();
            unMarkedIndexes = processor.ExtractedWaterMarkIndexes.ToArray();

            var percentage          = CalculateResult(processor.OriginalWaterMarkBits, processor.ExtractedWaterMarkBits);
            var percentageByIndexes = ResultByIndexes(markedIndexes, unMarkedIndexes);
            var extractedWaterMark  = WaterMark.FromBitArray(processor.ExtractedWaterMarkBits);

            return(string.Format("Identity: {0}% / {1}% -> {2}", percentage.ToString("F0"), percentageByIndexes.ToString("F0"), extractedWaterMark));
        }