shop-old/libs/phImaginator/phImaginator.Box.class.php
2026-04-20 01:03:43 +02:00

74 lines
1.5 KiB
PHP

<?php
abstract class phImaginator_Box extends phImaginator_Universal implements phImaginator_Module {
protected static $runCollected = false;
public static function fit($width, $height) {
$image_data =& parent::getCurrentResource();
$imageBox = imagecreatetruecolor($width, $height);
imagealphablending($imageBox, false);
imagesavealpha($imageBox, true);
$proportions['w'] = $width / $image_data['width'];
$proportions['h'] = $height / $image_data['height'];
$use_proportion = max($proportions);
$crop_width = $image_data['width'] * $use_proportion;
$crop_height = $image_data['height'] * $use_proportion;
imagecopyresampled(
$imageBox,
$image_data['resource'],
0,
0,
($crop_width - $width) / $use_proportion / 2,
($crop_height - $height) / $use_proportion / 2,
$crop_width,
$crop_height,
$image_data['width'],
$image_data['height']
);
$image_data['resource'] = $imageBox;
$image_data['width'] = $width;
$image_data['height'] = $height;
}
public static function crop($width, $height, $start_x, $start_y) {
$image_data =& parent::getCurrentResource();
$imageBox = imagecreatetruecolor($width, $height);
imagealphablending($imageBox, false);
imagesavealpha($imageBox, true);
imagecopy(
$imageBox,
$image_data['resource'],
0,
0,
$start_x,
$start_y,
$width,
$height
);
$image_data['resource'] = $imageBox;
$image_data['width'] = $width;
$image_data['height'] = $height;
}
}
?>