Ejemplo n.º 1
0
int barcode_to_png (char *image_name) {
  MagickWand *magick_wand;
  MagickBooleanType status;

  int width, height, pad, half_pad;

  /* read a barcode image */
  MagickWandGenesis();
  magick_wand = NewMagickWand();
  MagickSetResolution(magick_wand, 300, 300);
  status = MagickReadImage(magick_wand, image_name);
  if (status == MagickFalse) ThrowWandException(magick_wand, 1);

  /* trim the image, resample it, and pad it by [10% of the long side] per side */
  MagickTrimImage(magick_wand, 10);
  width = MagickGetImageWidth(magick_wand);
  height = MagickGetImageHeight(magick_wand);
  pad = determine_padding(width, height);
  half_pad = round(pad/2);
  MagickExtentImage(magick_wand, width+pad, height+pad, -half_pad, -half_pad);
  
  /* write image (a PNG version and a formatted PS version) */
  status=MagickWriteImage(magick_wand, chop_path(image_name, ".png"));
  if (status == MagickFalse) ThrowWandException(magick_wand, 2);
  status=MagickWriteImage(magick_wand, chop_path(image_name, ".ps"));
  if (status == MagickFalse) ThrowWandException(magick_wand, 2);

  /* clean up */
  magick_wand=DestroyMagickWand(magick_wand);
  MagickWandTerminus();

  return 0;
}
Ejemplo n.º 2
0
static zend_bool _php_zbarcode_read(MagickWand *wand, char *filename, long enhance)
{
	if (enhance & PHP_ZBARCODE_RESOLUTION) {
		MagickSetResolution(wand, 200, 200);
	}

	if (MagickReadImage(wand, filename) == MagickFalse) {
		ClearMagickWand(wand);
		return 0;
	}
	
	if (enhance & PHP_ZBARCODE_ENHANCE) {
		MagickEnhanceImage(wand);
	}
	
	if (enhance & PHP_ZBARCODE_SHARPEN) {
		MagickSharpenImage(wand, 0, 0.5);
	}
	
	return 1;
}
int convert_density (MagickWand *input, convert_t* opts) {
  if (!opts->density) return MagickPass;
  return MagickSetResolution(input, opts->density, opts->density);
}