diff --git a/htdocs/sql/transformation_wrapper.php b/htdocs/sql/transformation_wrapper.php new file mode 100755 --- /dev/null +++ b/htdocs/sql/transformation_wrapper.php @@ -0,0 +1,127 @@ + $option) { + if (substr($option, 0, 10) == '; charset=') { + $mime_options['charset'] = $option; + } + } +} + +// garvin: For re-usability, moved http-headers and stylesheets +// to a seperate file. It can now be included by libraries/header.inc.php, +// querywindow.php. + +require_once './libraries/header_http.inc.php'; +// [MIME] +if (isset($ct) && !empty($ct)) { + $content_type = 'Content-Type: ' . urldecode($ct); +} else { + $content_type = 'Content-Type: ' . (isset($mime_map[urldecode($transform_key)]['mimetype']) ? str_replace('_', '/', $mime_map[urldecode($transform_key)]['mimetype']) : $default_ct) . (isset($mime_options['charset']) ? $mime_options['charset'] : ''); +} +header($content_type); + +if (isset($cn) && !empty($cn)) { + header('Content-Disposition: attachment; filename=' . urldecode($cn)); +} + +if (!isset($resize)) { + echo $row[urldecode($transform_key)]; +} else { + // if image_*__inline.inc.php finds that we can resize, + // it sets $resize to jpeg or png + + $srcImage = imagecreatefromstring($row[urldecode($transform_key)]); + $srcWidth = ImageSX($srcImage); + $srcHeight = ImageSY($srcImage); + + // Check to see if the width > height or if width < height + // if so adjust accordingly to make sure the image + // stays smaller then the $newWidth and $newHeight + + $ratioWidth = $srcWidth/$newWidth; + $ratioHeight = $srcHeight/$newHeight; + + if ($ratioWidth < $ratioHeight){ + $destWidth = $srcWidth/$ratioHeight; + $destHeight = $newHeight; + } else { + $destWidth = $newWidth; + $destHeight = $srcHeight/$ratioWidth; + } + + if ($resize) { + $destImage = ImageCreateTrueColor($destWidth, $destHeight); + } + +// ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight); +// better quality but slower: + ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight); + + if ($resize == 'jpeg') { + ImageJPEG($destImage, '', 75); + } + if ($resize == 'png') { + ImagePNG($destImage); + } + ImageDestroy($srcImage); + ImageDestroy($destImage); +} + +/** + * Close MySql non-persistent connections + */ +if (isset($GLOBALS['controllink']) && $GLOBALS['controllink']) { + @PMA_DBI_close($GLOBALS['controllink']); +} +if (isset($GLOBALS['userlink']) && $GLOBALS['userlink']) { + @PMA_DBI_close($GLOBALS['userlink']); +} +?>