private object GenerateCompressedObject(ref RGBPixel[,] sourceImage) { int imageWidth = (new ImageOperations.ImageOperations()).GetWidth(sourceImage), imageHeight = (new ImageOperations.ImageOperations()).GetHeight(sourceImage); StringBuilder imageCode = new StringBuilder(); for (int i = 0; i < imageHeight; i++) { for (int j = 0; j < imageWidth; j++) { imageCode.Append(_redTree.GetNodePath((int)sourceImage[i, j].Red)); imageCode.Append(_greenTree.GetNodePath((int)sourceImage[i, j].Green)); imageCode.Append(_blueTree.GetNodePath((int)sourceImage[i, j].Blue)); } } _redTree.Dispose(); _greenTree.Dispose(); _blueTree.Dispose(); string imageCodeString = imageCode.ToString(); imageCode.Clear(); return(ConvertStrToByte(ref imageCodeString)); }