/ / Fetch Image von MySQL und Größe ändern mit Timthumb in PHP - PHP, MySQL, Bildverarbeitung, Timthumb

Holen Sie Image von MySQL und Größe ändern mit Timthumb in PHP - PHP, MySQL, Bildverarbeitung, Timthumb

Ich verwende timthumb.php für die Größenänderung von Bildern. Es funktioniert mit lokalem Bild, aber was, wenn ich URL habe, die Bild von MYSQL abhole und dann möchte ich dieses Bild im Flug ändern, bevor es angezeigt wird? Ich habe es auf verschiedene Arten versucht. meine URL, die Bild von MYSQL holt, ist

http://somedomain/final/getImage.php?id=1234

Ich möchte etwas wie unten tun, das nicht funktioniert

<img src="/images/php_helpers/timthumb.php?src=http://somedomain/final/getImage.php?id=1234&w=260" alt="" />

Jede Hilfe würde sehr geschätzt werden. Vielen Dank

Antworten:

1 für die Antwort № 1

Hi, das ist die Bildgröße-Klasse. Bitte verwenden Sie dies in Ihrer Bewerbung. Wenn irgendwelche Änderungen von Ihrem Anwendungspfad abhängig sind, tun Sie es bitte in diesem.

<?php
/**
* Resize image class will allow you to resize an image
*
* Can resize to exact size
* Max width size while keep aspect ratio
* Max height size while keep aspect ratio
* Automatic while keep aspect ratio
*/
class ResizeImage
{
private $ext;
private $image;
private $newImage;
private $origWidth;
private $origHeight;
private $resizeWidth;
private $resizeHeight;
/**
* Class constructor requires to send through the image filename
*
* @param string $filename – Filename of the image you want to resize
*/
public function __construct( $filename )
{
if(file_exists($filename))
{
$this->setImage( $filename );
} else {
throw new Exception(‘Image ‘ . $filename . ‘ can not be found, try another image.’);
}
}
/**
* Set the image variable by using image create
*
* @param string $filename – The image filename
*/
private function setImage( $filename )
{
$size = getimagesize($filename);
$this->ext = $size["mime"];
switch($this->ext)
{
// Image is a JPG
case ‘image/jpg’:
case ‘image/jpeg’:
// create a jpeg extension
$this->image = imagecreatefromjpeg($filename);
break;
// Image is a GIF
case ‘image/gif’:
$this->image = @imagecreatefromgif($filename);
break;
// Image is a PNG
case ‘image/png’:
$this->image = @imagecreatefrompng($filename);
break;
// Mime type not found
default:
throw new Exception(“File is not an image, please use another file type.”, 1);
}
$this->origWidth = imagesx($this->image);
$this->origHeight = imagesy($this->image);
}
/**
* Save the image as the image type the original image was
*
* @param  String[type] $savePath     – The path to store the new image
* @param  string $imageQuality       – The qulaity level of image to create
*
* @return Saves the image
*/
public function saveImage($savePath, $imageQuality=”100″, $download = false)
{
switch($this->ext)
{
case ‘image/jpg’:
case ‘image/jpeg’:
// Check PHP supports this file type
if (imagetypes() & IMG_JPG) {
imagejpeg($this->newImage, $savePath, $imageQuality);
}
break;
case ‘image/gif’:
// Check PHP supports this file type
if (imagetypes() & IMG_GIF) {
imagegif($this->newImage, $savePath);
}
break;
case ‘image/png’:
$invertScaleQuality = 9 – round(($imageQuality/100) * 9);
// Check PHP supports this file type
if (imagetypes() & IMG_PNG) {
imagepng($this->newImage, $savePath, $invertScaleQuality);
}
break;
}
if($download)
{
header(‘Content-Description: File Transfer’);
header(“Content-type: application/octet-stream”);
header(“Content-disposition: attachment; filename= “.$savePath."");
readfile($savePath);
}
imagedestroy($this->newImage);
}
/**
* Resize the image to these set dimensions
*
* @param  int $width            - Max width of the image
* @param  int $height           - Max height of the image
* @param  string $resizeOption – Scale option for the image
*
* @return Save new image
*/
public function resizeTo( $width, $height, $resizeOption = ‘default’ )
{
switch(strtolower($resizeOption))
{
case ‘exact’:
$this->resizeWidth = $width;
$this->resizeHeight = $height;
break;
case ‘maxwidth’:
$this->resizeWidth  = $width;
$this->resizeHeight = $this->resizeHeightByWidth($width);
break;
case ‘maxheight’:
$this->resizeWidth  = $this->resizeWidthByHeight($height);
$this->resizeHeight = $height;
break;
default:
if($this->origWidth > $width || $this->origHeight > $height)
{
if ( $this->origWidth > $this->origHeight ) {
$this->resizeHeight = $this->resizeHeightByWidth($width);
$this->resizeWidth  = $width;
} else if( $this->origWidth < $this->origHeight ) {
$this->resizeWidth  = $this->resizeWidthByHeight($height);
$this->resizeHeight = $height;
}
} else {
$this->resizeWidth = $width;
$this->resizeHeight = $height;
}
break;
}
$this->newImage = imagecreatetruecolor($this->resizeWidth, $this->resizeHeight);
imagecopyresampled($this->newImage, $this->image, 0, 0, 0, 0, $this->resizeWidth, $this->resizeHeight, $this->origWidth, $this->origHeight);
}
/**
* Get the resized height from the width keeping the aspect ratio
*
* @param  int $width – Max image width
*
* @return Height keeping aspect ratio
*/
private function resizeHeightByWidth($width)
{
return floor(($this->origHeight/$this->origWidth)*$width);
}
/**
* Get the resized width from the height keeping the aspect ratio
*
* @param  int $height – Max image height
*
* @return Width keeping aspect ratio
*/
private function resizeWidthByHeight($height)
{
return floor(($this->origWidth/$this->origHeight)*$height);
}
}
?>

<!– Below functions is to used for resizing and saving the image –>


<?php
$resize = new ResizeImage(‘images/1.jpg’);
$resize->resizeTo(500, 500, ‘exact’);
$resize->saveImage(‘images/5.jpg’);
$resize->resizeTo(500, 500, ‘maxWidth’);
$resize->saveImage(‘images/6.png’);
$resize->resizeTo(500, 500, ‘maxHeight’);
$resize->saveImage(‘images/7.png’);
$resize->resizeTo(500, 500);
$resize->saveImage(‘images/8.png’);
//$resize->resizeTo(500, 500, ‘exact’);
//$resize->saveImage(‘images/9.png’, “100″, true);
echo “<img src=’images/1.jpg’>”;
echo “<br>”;
echo “<img src=’images/6.png’>”;
echo “<br>”;
echo “<img src=’images/7.png’>”;
echo “<br>”;
echo “<img src=’images/8.png’>”;
echo “<br>”;
echo “<img src=’images/9.jpg’>”;
//echo “<img src=’images/5.jpg’ height=’600′ width=’1000′>”;
?>

Wenn Sie irgendwelche Probleme haben, in diesem Code zu verwenden, teilen Sie mit mir bitte. Ich werde dir helfen.


0 für die Antwort № 2

Sie sollten Bildpfad in src-Tag anstelle von php path.like verwenden

<img src="/images/timthumb.php?src=/images/filename.jpg&h=150&w=150&zc=1" alt="some text" />

Wenn Sie den Bildpfad aus der Datenbank holen wollen, sollten Sie etwas schreiben wie

<?php
$sql = "SELECT image FROM image_tbl WHERE ID ="$image_id"";
$result = mysql_query($sql);
$image = mysql_result($result, 0);

echo "<img src="/images/" $image""/>";

?>