Image compression techniques can be lossless or lossy. Lossless techniques compress files without losing information using methods like run length encoding or Huffman coding. Lossy techniques like JPEG discard unnecessary details to achieve higher compression ratios at the cost of some quality loss. Popular Python libraries for image compression and processing include Pillow, OpenCV, and scikit-image, which support various algorithms such as discrete cosine transform and wavelet transform.