The bellow code resize the image to thumbnail size.include("resize-class.php"); function save_image($thumb) { //thumb is image path if($thumb) { $resizeObj = new resize($thumb); // *** 2) Resize image (options: exact, portrait, landscape, auto, crop) $resizeObj -> resizeImage(120, 90, 'crop'); // *** 3) Save image $thumbname=$guid."thumbnail.jpg"; $resizeObj -> saveImage("Tempfolder/".$thumbname, 100); } }resize-class.php
<?php # ========================================================================# # # Author: Jarrod Oberto # Version: 1.0 # Date: 17-Jan-10 # Purpose: Resizes and saves image # Requires : Requires PHP5, GD library. # Usage Example: # include("classes/resize_class.php"); # $resizeObj = new resize('images/cars/large/input.jpg'); # $resizeObj -> resizeImage(150, 100, 0); # $resizeObj -> saveImage('images/cars/large/output.jpg', 100); # # # ========================================================================# Class resize { // *** Class variables private $image; private $width; private $height; private $imageResized; function __construct($fileName) { // *** Open up the file $this->image = $this->openImage($fileName); // *** Get width and height $this->width = imagesx($this->image); $this->height = imagesy($this->image); } ## -------------------------------------------------------- private function openImage($file) { // *** Get extension $extension = strtolower(strrchr($file, '.')); switch($extension) { case '.jpg': case '.jpeg': $img = @imagecreatefromjpeg($file); break; case '.gif': $img = @imagecreatefromgif($file); break; case '.png': $img = @imagecreatefrompng($file); break; default: $img = false; break; } return $img; } ## -------------------------------------------------------- public function resizeImage($newWidth, $newHeight, $option="auto") { // *** Get optimal width and height - based on $option $optionArray = $this->getDimensions($newWidth, $newHeight, $option); $optimalWidth = $optionArray['optimalWidth']; $optimalHeight = $optionArray['optimalHeight']; // *** Resample - create image canvas of x, y size $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight); imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height); // *** if option is 'crop', then crop too if ($option == 'crop') { $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight); } } ## -------------------------------------------------------- private function getDimensions($newWidth, $newHeight, $option) { switch ($option) { case 'exact': $optimalWidth = $newWidth; $optimalHeight= $newHeight; break; case 'portrait': $optimalWidth = $this->getSizeByFixedHeight($newHeight); $optimalHeight= $newHeight; break; case 'landscape': $optimalWidth = $newWidth; $optimalHeight= $this->getSizeByFixedWidth($newWidth); break; case 'auto': $optionArray = $this->getSizeByAuto($newWidth, $newHeight); $optimalWidth = $optionArray['optimalWidth']; $optimalHeight = $optionArray['optimalHeight']; break; case 'crop': $optionArray = $this->getOptimalCrop($newWidth, $newHeight); $optimalWidth = $optionArray['optimalWidth']; $optimalHeight = $optionArray['optimalHeight']; break; } return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); } ## -------------------------------------------------------- private function getSizeByFixedHeight($newHeight) { $ratio = $this->width / $this->height; $newWidth = $newHeight * $ratio; return $newWidth; } private function getSizeByFixedWidth($newWidth) { $ratio = $this->height / $this->width; $newHeight = $newWidth * $ratio; return $newHeight; } private function getSizeByAuto($newWidth, $newHeight) { if ($this->height < $this->width) // *** Image to be resized is wider (landscape) { $optimalWidth = $newWidth; $optimalHeight= $this->getSizeByFixedWidth($newWidth); } elseif ($this->height > $this->width) // *** Image to be resized is taller (portrait) { $optimalWidth = $this->getSizeByFixedHeight($newHeight); $optimalHeight= $newHeight; } else // *** Image to be resizerd is a square { if ($newHeight < $newWidth) { $optimalWidth = $newWidth; $optimalHeight= $this->getSizeByFixedWidth($newWidth); } else if ($newHeight > $newWidth) { $optimalWidth = $this->getSizeByFixedHeight($newHeight); $optimalHeight= $newHeight; } else { // *** Sqaure being resized to a square $optimalWidth = $newWidth; $optimalHeight= $newHeight; } } return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); } ## -------------------------------------------------------- private function getOptimalCrop($newWidth, $newHeight) { $heightRatio = $this->height / $newHeight; $widthRatio = $this->width / $newWidth; if ($heightRatio < $widthRatio) { $optimalRatio = $heightRatio; } else { $optimalRatio = $widthRatio; } $optimalHeight = $this->height / $optimalRatio; $optimalWidth = $this->width / $optimalRatio; return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); } ## -------------------------------------------------------- private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight) { // *** Find center - this will be used for the crop $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); $crop = $this->imageResized; //imagedestroy($this->imageResized); // *** Now crop from center to exact requested size $this->imageResized = imagecreatetruecolor($newWidth , $newHeight); imagecopyresampled($this->imageResized, $crop , 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight); } ## -------------------------------------------------------- public function saveImage($savePath, $imageQuality="100") { // *** Get extension $extension = strrchr($savePath, '.'); $extension = strtolower($extension); switch($extension) { case '.jpg': case '.jpeg': if (imagetypes() & IMG_JPG) { imagejpeg($this->imageResized, $savePath, $imageQuality); } break; case '.gif': if (imagetypes() & IMG_GIF) { imagegif($this->imageResized, $savePath); } break; case '.png': // *** Scale quality from 0-100 to 0-9 $scaleQuality = round(($imageQuality/100) * 9); // *** Invert quality setting as 0 is best, not 9 $invertScaleQuality = 9 - $scaleQuality; if (imagetypes() & IMG_PNG) { imagepng($this->imageResized, $savePath, $invertScaleQuality); } break; // ... etc default: // *** No extension - No save. break; } imagedestroy($this->imageResized); } ## -------------------------------------------------------- } ?>
Monthly Archives: December 2012
PYGAME ANIMATION 2
import pygame, sys from pygame.locals import * pygame.init() FPS=60 fpsclock=pygame.time.Clock() window_width = 500 window_height = 500 displaywindow = pygame.display.set_mode((window_width,window_height)) pygame.display.set_caption('mygame1') white = (255,255,255) black = (1,1,1) displaywindow.fill(white); image = pygame.image.load('img/image.jpg') img1x=300 img1y=300 img2x=img1x+192 img2y=img1y+120 i=1 j=1 while 1: displaywindow.fill(white) img1x = img1x-i img1y = img1y-j img2x = img2x-i img2y = img2y-j for event in pygame.event.get(): if event.type == pygame.locals.QUIT: pygame.quit() sys.exit() if img1x &lt;= 1: i=-1 if img1y &lt;= 1: j=-1 if img2x &gt;= window_width-1: i=1 if img2y &gt;= window_height-1: j=1 displaywindow.blit(image,(img1x,img1y)) pygame.display.update() fpsclock.tick(FPS)
PYGAME ANIMATION 1
import pygame, sys from pygame.locals import * pygame.init() FPS=60 fpsclock=pygame.time.Clock() window_width = 500 window_height = 500 displaywindow = pygame.display.set_mode((window_width,window_height)) pygame.display.set_caption('mygame1') white = (255,255,255) black = (1,1,1) displaywindow.fill(white); image = pygame.image.load('img/image.jpg') img1x=300 img1y=300 img2x=img1x+192 img2y=img1y+120 i=1 y = 0 yspeed = 0 yaccel = 1 x = 0 xspeed = 5 frictionCoefficient = 0.01 while 1: displaywindow.fill(white) img1x = img1x-i img1y = img1y-i img2x = img2x-i img2y = img2y-i for event in pygame.event.get(): if event.type == pygame.locals.QUIT: pygame.quit() sys.exit() if img1x <= 1 or img1y <= 1: i=-1 if img2x >= window_width-1 or img2y >= window_height-1: i=1 yspeed += yaccel yspeed -= frictionCoefficient * yspeed y += yspeed x += xspeed if x <= 1 or x >= window_width - 1 - 190: xspeed *= -0.5 if y > (window_height-1 - 120): y = window_height-1 - 120 yspeed *= -1 displaywindow.blit(image,(x,y)) pygame.display.update() fpsclock.tick(FPS)
MY PYGAME 1
Today I have started to learn pygame, and my first try in below.
import pygame, sys from pygame.locals import * pygame.init() DISPLAYSURF = pygame.display.set_mode((400,300)); pygame.display.set_caption('HW') i=0 j=0 k=0 while True: for event in pygame.event.get(): i=i+3 j=j+6 k=k+9 if i>=200: i=1 if k>=200: k=1 if j>=200: j=1 if event.type == QUIT: pygame.quit() sys.exit() DISPLAYSURF.fill((i,j,k)) pygame.display.update()