rgba := readRGBAColor(im.At(x, y))
if index < b_len*8+64 {
if index < 64 {
bb = head[index/8]
} else {
bb = b[index/8-8]
}
bs = Byte2bits(bb)
i = index % 8
if bs[i] != rgba.R&1 {
if bs[i] == 0 {
rgba.R -= 1
} else {
rgba.R += 1
}
}
}
if v := out.(*image.RGBA); v != nil {
v.SetRGBA(x, y, rgba)
}
})
if err != nil {
return nil, err
}
return
}
func ReadShadowData(im image.Image) (b []byte, err error) {
head, err := ReadShadowHeader(im)
if err != nil {
return nil, err
}
length := int(ReadShadowLength(head))
var bk []byte = make([]byte, length*8)
b = make([]byte, length)
_, err = SetImage(im, func(index, x, y int, in, out image.Image) {
if index >= 64 && index < length*8+64 {
R := readRGBAColor(im.At(x, y)).R
bk[index-64] = uint8(R & 1)
}
})
var bb [8]byte
var bs []byte
for i := 0; i < length; i++ {










