function buildImage($opts) { $input = "input/2010_09_04__23_56_32_125__SDO_AIA_AIA_304.pgm"; $clut = "input/SDO_AIA_304.png"; $image = new IMagick($input); if ($opts['use_gd']) { // Format if ($opts['inter_format']) { $image->setImageFormat($opts['inter_format']); } // Bit-depth (intermediate image) if ($opts['depth']) { $image->setImageDepth($opts['depth']); } // Image type if ($opts['type']) { $image->setImageType(constant($opts['type'])); } // Compression quality if ($opts['input_quality'] || $opts['input_quality'] === 0) { $image->setImageCompressionQuality($opts['input_quality']); } $intermediate = $image->getimageblob(); if ($opts['base64']) { $intermediate = base64_encode($intermediate); } $image->destroy(); $coloredImage = setColorPalette($intermediate, $clut, $opts['base64']); if ($opts['base64']) { $coloredImage = base64_decode($coloredImage); } $image = new IMagick(); $image->readimageblob($coloredImage); } else { $image->clutImage(new Imagick($clut)); } if (strtolower($opts["output_format"]) == "png") { // Compression type if ($opts['compression']) { $image->setImageCompression(constant($opts['compression'])); } // Interlacing if ($opts['interlace']) { $image->setInterlaceScheme(constant($opts['interlace'])); } // Compression quality if ($opts['output_quality'] || $opts['output_quality'] === 0) { $image->setImageCompressionQuality($opts['output_quality']); } } // Bit-depth (final image) if ($opts['depth']) { $image->setImageDepth($opts['depth']); } $image->writeImage("final." . strtolower($opts["output_format"])); $image->destroy(); }