/** * @depends testRequiredImagickImageMagickPhpVersions */ public function testImagickResize() { if (is_array($source_images_set = self::$source_images_set)) { $resize_width = 400; $resize_height = 300; foreach ($source_images_set as $source_image) { $Image = new \Rundiz\Image\Drivers\Imagick(self::$source_images_dir . $source_image); foreach (self::$processed_extensions as $save_extension) { $Image->master_dim = 'width'; $Image->resize($resize_width, $resize_height); $save_file_name = self::$processed_images_dir . 'rundiz-imagick-source[' . $this->getExtensionFromName($source_image) . ']-masterdim[' . $Image->master_dim . ']-resize[' . $resize_width . 'x' . $resize_height . '].' . $save_extension; $Image->save($save_file_name); $Image->clear(); list($width, $height, $image_type) = getimagesize($save_file_name); $processed_image_data = array('width' => $width, 'image_type' => $image_type); // test assert. $this->assertArraySubset(array('width' => $resize_width, 'image_type' => $this->getProcessedExtensionTypeNumber($save_extension)), $processed_image_data, '', sprintf('Expected result was not matched. %s', var_export($processed_image_data, true))); unset($height, $width, $image_type, $save_file_name); } // endforeach; unset($save_extension); } // endforeach; unset($source_image); foreach ($source_images_set as $source_image) { $Image = new \Rundiz\Image\Drivers\Imagick(self::$source_images_dir . $source_image); foreach (self::$processed_extensions as $save_extension) { $Image->master_dim = 'height'; $Image->resize($resize_width, $resize_height); $save_file_name = self::$processed_images_dir . 'rundiz-imagick-source[' . $this->getExtensionFromName($source_image) . ']-masterdim[' . $Image->master_dim . ']-resize[' . $resize_width . 'x' . $resize_height . '].' . $save_extension; $Image->save($save_file_name); $Image->clear(); list($width, $height, $image_type) = getimagesize($save_file_name); $processed_image_data = array('height' => $height, 'image_type' => $image_type); // test assert. $this->assertArraySubset(array('height' => $resize_height, 'image_type' => $this->getProcessedExtensionTypeNumber($save_extension)), $processed_image_data, '', sprintf('Expected result was not matched. %s', var_export($processed_image_data, true))); unset($height, $width, $image_type, $save_file_name); } // endforeach; unset($save_extension); } // endforeach; unset($source_image); unset($resize_height, $resize_width, $source_images_set); } }
} if (!is_numeric($fontsize)) { $fontsize = 15; } else { $fontsize = intval($fontsize); } $Image = new \Rundiz\Image\Drivers\Imagick($source_image_file); switch ($act) { case 'watermarktext': $Image->watermarkText('Rundiz watermark สั้น ญู ให้ ทดสอบสระ.', '../source-images/cschatthai.ttf', $start_x, $start_y, $fontsize); break; case 'crop': $Image->crop($width, $height); break; case 'rotate': $Image->rotate($degree); break; case 'resizenoratio': $Image->resizeNoRatio($width, $height); break; case 'resize': default: $Image->resize($width, $height); break; } if ($Image->status === false) { die($Image->status_msg); } header('Content-type: ' . $Image->source_image_data['mime']); $Image->show($show_ext); $Image->clear();
function displayTestResizeRatio(array $test_data_set) { foreach ($test_data_set as $main_ext => $items) { echo '<h2><a href="' . $items['source_image_path'] . '">' . $main_ext . '</a><img src="' . $items['source_image_path'] . '" alt="" class="thumbnail"></h2>' . "\n"; $Image = new \Rundiz\Image\Drivers\Imagick($items['source_image_path']); $master_dim = 'auto'; echo '<h3>Not allow resize larger, master dimension ' . $master_dim . '</h3>' . "\n"; $base_save_file_name = '../processed-images/rundiz-imagick-image-resizeratio-testpage-source-' . strtolower(str_replace(array('\\', '/', ' '), '', $main_ext)); $base_save_file_name2 = $base_save_file_name . '-nolarger-masterdim-' . $master_dim; $Image->master_dim = $master_dim; echo 'Saved as: '; foreach ($items['resize_sizes'] as $sizes) { $base_save_file_name3 = $base_save_file_name2 . '-resize-' . $sizes[0] . 'x' . $sizes[1] . '.' . $items['save_as']; $Image->resize($sizes[0], $sizes[1]); $Image->save($base_save_file_name3); $Image->clear(); list($saved_w, $saved_h) = getimagesize($base_save_file_name3); if ($saved_w != $sizes[0] || $saved_h != $sizes[1]) { echo $sizes[0] . 'x' . $sizes[1] . ' => '; } echo '<a href="' . $base_save_file_name3 . '">' . $saved_w . 'x' . $saved_h . '</a><img src="' . $base_save_file_name3 . '" alt="" class="thumbnail"> '; echo ' '; unset($base_save_file_name3, $saved_h, $saved_w); } unset($base_save_file_name, $base_save_file_name2, $sizes); echo '<br>'; // allow resize larger $Image->allow_resize_larger = true; echo '<h3>Allow resize larger, master dimension ' . $master_dim . '</h3>' . "\n"; $base_save_file_name = '../processed-images/rundiz-imagick-image-resizeratio-testpage-source-' . strtolower(str_replace(array('\\', '/', ' '), '', $main_ext)); $base_save_file_name2 = $base_save_file_name . '-allowlarger-masterdim-' . $master_dim; $Image->master_dim = $master_dim; echo 'Saved as: '; foreach ($items['resize_sizes'] as $sizes) { $base_save_file_name3 = $base_save_file_name2 . '-resize-' . $sizes[0] . 'x' . $sizes[1] . '.' . $items['save_as']; $Image->resize($sizes[0], $sizes[1]); $Image->save($base_save_file_name3); $Image->clear(); list($saved_w, $saved_h) = getimagesize($base_save_file_name3); if ($saved_w != $sizes[0] || $saved_h != $sizes[1]) { echo $sizes[0] . 'x' . $sizes[1] . ' => '; } echo '<a href="' . $base_save_file_name3 . '">' . $saved_w . 'x' . $saved_h . '</a><img src="' . $base_save_file_name3 . '" alt="" class="thumbnail"> '; echo ' '; unset($base_save_file_name3, $saved_h, $saved_w); } unset($base_save_file_name, $base_save_file_name2, $sizes); echo '<br>'; // not allow resize larger, master dim = height $master_dim = 'height'; $Image->allow_resize_larger = false; echo '<h3>Not allow resize larger, master dimension ' . $master_dim . '</h3>' . "\n"; $base_save_file_name = '../processed-images/rundiz-imagick-image-resizeratio-testpage-source-' . strtolower(str_replace(array('\\', '/', ' '), '', $main_ext)); $base_save_file_name2 = $base_save_file_name . '-nolarger-masterdim-' . $master_dim; $Image->master_dim = $master_dim; echo 'Saved as: '; foreach ($items['resize_sizes'] as $sizes) { $base_save_file_name3 = $base_save_file_name2 . '-resize-' . $sizes[0] . 'x' . $sizes[1] . '.' . $items['save_as']; $Image->resize($sizes[0], $sizes[1]); $Image->save($base_save_file_name3); $Image->clear(); list($saved_w, $saved_h) = getimagesize($base_save_file_name3); if ($saved_w != $sizes[0] || $saved_h != $sizes[1]) { echo $sizes[0] . 'x' . $sizes[1] . ' => '; } echo '<a href="' . $base_save_file_name3 . '">' . $saved_w . 'x' . $saved_h . '</a><img src="' . $base_save_file_name3 . '" alt="" class="thumbnail"> '; echo ' '; unset($base_save_file_name3, $saved_h, $saved_w); } unset($base_save_file_name, $base_save_file_name2, $sizes); echo '<br>'; unset($Image, $master_dim); } unset($items, $main_ext); }