/* * /// <summary> * /// 重载加入图片水印 * /// </summary> * /// <param name="picLen"></param> * /// <param name="bufPic"></param> * /// <param name="Hamming">循环冗余检验</param> * /// <param name="markLocate2"></param> * /// <param name="TableName"></param> * /// <param name="DBType"></param> * /// <param name="field"></param> * public void PicMark(int picLen, byte[] bufPic, string Hamming, ArrayList[] markLocate2, byte picX, byte picY, string TableName, string DBType, ArrayList field) * { * int i; * string mark = ""; * string head; * string tail; * int picMarkBit; * picMarkBit = (picLen - 62) * 8 + picX / 4 * 3 * picY; * * for (i = 62; i < picLen; i++) * { * string binary = System.Convert.ToString(bufPic[i], 2); * while (binary.Length < 8) * { * binary = binary.Insert(0, "0"); * } * head = binary.Substring(0, 4); * tail = binary.Substring(4, 4); * mark = mark + head + Hamming.Substring((i - 62) * 2 * 3, 3) + tail + Hamming.Substring(((i - 62) * 2 + 1) * 3, 3); * } * * for (i = 0; i < picMarkBit; i++) * { * DBlink myLink = new DBlink(); * myLink.AddPicInfo(mark[i], (int)markLocate2[0][i], (int)markLocate2[1][i], TableName, DBType, field); * } * } */ public byte[] GetPic(int picLen, byte picOffset1, byte picOffset2, byte picX, byte picY, ArrayList[] markLocate2, string TableName, string DBType, ArrayList field) { int i; string temp; int picMarkBit; byte[] myPic = new byte[picLen]; string mark = ""; int count = 0; int key = 62; byte[] head = { 66, 77, picOffset1, picOffset2, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 40, 0, 0, 0, picX, 0, 0, 0, picY, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255 }; picMarkBit = (picLen - 62) * 8; for (i = 0; i < picMarkBit; i++) { DBlink myLink = new DBlink(); temp = myLink.GetPicInfo((int)markLocate2[0][i], (int)markLocate2[1][i], TableName, DBType, field); if ((int)temp[temp.Length - 1] == 8204) { mark += 0; } else { mark += 1; } count++; if (count == 8) { count = 0; myPic[key] = System.Convert.ToByte(mark, 2); mark = ""; key++; } } for (i = 0; i < 62; i++) { myPic[i] = head[i]; } return(myPic); }
/* /// <summary> /// 重载加入图片水印 /// </summary> /// <param name="picLen"></param> /// <param name="bufPic"></param> /// <param name="Hamming">循环冗余检验</param> /// <param name="markLocate2"></param> /// <param name="TableName"></param> /// <param name="DBType"></param> /// <param name="field"></param> public void PicMark(int picLen, byte[] bufPic, string Hamming, ArrayList[] markLocate2, byte picX, byte picY, string TableName, string DBType, ArrayList field) { int i; string mark = ""; string head; string tail; int picMarkBit; picMarkBit = (picLen - 62) * 8 + picX / 4 * 3 * picY; for (i = 62; i < picLen; i++) { string binary = System.Convert.ToString(bufPic[i], 2); while (binary.Length < 8) { binary = binary.Insert(0, "0"); } head = binary.Substring(0, 4); tail = binary.Substring(4, 4); mark = mark + head + Hamming.Substring((i - 62) * 2 * 3, 3) + tail + Hamming.Substring(((i - 62) * 2 + 1) * 3, 3); } for (i = 0; i < picMarkBit; i++) { DBlink myLink = new DBlink(); myLink.AddPicInfo(mark[i], (int)markLocate2[0][i], (int)markLocate2[1][i], TableName, DBType, field); } } */ public byte[] GetPic(int picLen, byte picOffset1, byte picOffset2, byte picX, byte picY, ArrayList[] markLocate2, string TableName, string DBType, ArrayList field) { int i; string temp; int picMarkBit; byte[] myPic = new byte[picLen]; string mark = ""; int count = 0; int key = 62; byte[] head = {66,77,picOffset1,picOffset2,0,0,0,0,0,0,62,0,0,0,40,0,0,0,picX,0,0,0,picY, 0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, 0,2,0,0,0,0,0,0,255,255,255,255,255}; picMarkBit = (picLen - 62) * 8; for (i = 0; i < picMarkBit; i++) { DBlink myLink = new DBlink(); temp = myLink.GetPicInfo((int)markLocate2[0][i], (int)markLocate2[1][i], TableName, DBType, field); if ((int)temp[temp.Length - 1] == 8204) mark += 0; else mark += 1; count++; if (count == 8) { count = 0; myPic[key] = System.Convert.ToByte(mark, 2); mark = ""; key++; } } for (i = 0; i < 62; i++) { myPic[i] = head[i]; } return myPic; }