diff --git a/hello.jpg b/hello.jpg new file mode 100644 index 0000000..37891db Binary files /dev/null and b/hello.jpg differ diff --git a/hello_qrcode.png b/hello_qrcode.png new file mode 100644 index 0000000..d8ac8fb Binary files /dev/null and b/hello_qrcode.png differ diff --git a/hello_watermark.png b/hello_watermark.png new file mode 100644 index 0000000..0f9625a Binary files /dev/null and b/hello_watermark.png differ diff --git a/hello_watermark_1bit.png b/hello_watermark_1bit.png new file mode 100644 index 0000000..0c93884 Binary files /dev/null and b/hello_watermark_1bit.png differ diff --git a/invisible watermarking.py b/invisible watermarking.py new file mode 100644 index 0000000..277d693 --- /dev/null +++ b/invisible watermarking.py @@ -0,0 +1,31 @@ +from PIL import Image + +from sys import argv +from qrcode import make as makeQR + +if __name__ == '__main__': + qr = makeQR("hello sourya") + qw, qh = qr.size + + im = Image.open("hello.jpg") + w, h = im.size + + if qw > w: + qr = qr.resize((w, w)) + elif qh > h: + qr = qr.resize((h, h)) + qw, qh = qr.size + + imd = im.load() + for i in range(w): + for j in range(h): + d = imd[i, j] + imd[i, j] = d[:-1] + ((d[-1] | 1) if qr.getpixel((i % qw, j % qh)) else (d[-1] & ~1),) + + + from os.path import splitext + + root, ext = splitext("hello.jpg") + im.save(root + '_watermark.png') + qr.save(root+'_qrcode'+'.png') + diff --git a/retrive watermark.py b/retrive watermark.py new file mode 100644 index 0000000..e5cf543 --- /dev/null +++ b/retrive watermark.py @@ -0,0 +1,26 @@ +from PIL import Image + +from sys import argv +from qrcode import make as makeQR + +if __name__ == '__main__': + im = Image.open("hello_watermark.png") + s = w, h = im.size + imd = im.load() + + oim = Image.new('1', s) + oimd = oim.load() + + for i in range(w): + for j in range(h): + d = imd[i, j] + oimd[i, j] = 255 * (d[-1] & 1) + # oimd[i,j] = 255 * (d[-1]>>1 & 1) + # oimd[i,j] = 255 * (1 if d[-1] & 0b111 == 0b111 else 0) + + from os.path import splitext + + root, ext = splitext("hello_watermark.png") + fname = root + '_1bit' + ext + oim.save(fname) +