code: func AdjustContrast(img image.Image, percentage float64) *image.NRGBA {
  	percentage = math.Min(math.Max(percentage, -100.0), 100.0)
  	lut := make([]uint8, 256)
  
  	v := (100.0 + percentage) / 100.0
  	for i := 0; i < 256; i++ {
  		switch {
  		case 0 <= v && v <= 1:
  			lut[i] = clamp((0.5 + (float64(i)/255.0-0.5)*v) * 255.0)
  		case 1 < v && v < 2:
  			lut[i] = clamp((0.5 + (float64(i)/255.0-0.5)*(1/(2.0-v))) * 255.0)
  		default:
  			lut[i] = uint8(float64(i)/255.0+0.5) * 255
  		}
  	}
  
  	return adjustLUT(img, lut)
  }
docs: // AdjustContrast changes the contrast of the image using the percentage parameter and returns the adjusted image.
  // The percentage must be in range (-100, 100). The percentage = 0 gives the original image.
  // The percentage = -100 gives solid gray image.
  //
  // Examples:
  //
  //	dstImage = imaging.AdjustContrast(srcImage, -10) // Decrease image contrast by 10%.
  //	dstImage = imaging.AdjustContrast(srcImage, 20) // Increase image contrast by 20%.
  //