imagerotate
Поворот изображения image на заданный угол angle в градусах.
Центром поворота является центр изображения. Поворачиваемое изображение может отличаться размером от оригинала.
Список параметров
Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor() .
Угол поворота в градусах против часовой стрелки.
Цвет фона свободной зоны после поворота.
Если установлено и не равно нулю, прозрачность игнорируются (иначе сохраняется).
Возвращаемые значения
Возвращает ресурс повёрнутого изображения в случае успеха, или FALSE в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
5.5.0 | Эта функция теперь меняет свое поведение при изменении метода интерполяции функцией imagesetinterpolation() . |
5.1.0 | Добавлен параметр ignore_transparent . |
Примеры
Пример #1 Поворот изображения на 180 градусов
Этот пример поворачивает изображения на 180 градусов — верхом вниз.
// Файл и угол поворота
$filename = ‘test.jpg’ ;
$degrees = 180 ;
?php
// Тип содержимого
header ( ‘Content-type: image/jpeg’ );
// Загрузка изображения
$source = imagecreatefromjpeg ( $filename );
// Поворот
$rotate = imagerotate ( $source , $degrees , 0 );
// Высвобождение памяти
imagedestroy ( $source );
imagedestroy ( $rotate );
?>
Результатом выполнения данного примера будет что-то подобное:
Примечания
Замечание:
Данная функция подвержена влиянию метода интерполяции, установленным функцией imagesetinterpolation() .
Смотрите также
Imagick::rotateImage
Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.
Parameters
Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.
Return Values
Returns true on success.
Changelog
Version | Description |
---|---|
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object. |
Examples
Example #1 Imagick::rotateImage()
function rotateImage ( $imagePath , $angle , $color ) $imagick = new \ Imagick ( realpath ( $imagePath ));
$imagick -> rotateimage ( $color , $angle );
header ( «Content-Type: image/jpg» );
echo $imagick -> getImageBlob ();
>
?php
User Contributed Notes 5 notes
The degrees for imagick and gd is difference!
GD > rotate 90 means counter clockwise.
Imagick > rotate 90 means clockwise.
GD 90 = Imagick 270 or Imagick 90 = GD 270.
function calculateCounterClockwise ( $value )
if ( $value == 0 || $value == 180 ) return $value ;
>
if ( $value < 0 || $value >360 ) $value = 90 ;
>
$total_degree = 360 ;
$output = intval ( $total_degree — $value );
return $output ;
> // calculateCounterClockwise
echo ‘1 = ‘ . calculateCounterClockwise ( 1 ). ‘
‘ ;
echo ’90 = ‘ . calculateCounterClockwise ( 90 ). ‘
‘ ;
echo ‘270 = ‘ . calculateCounterClockwise ( 270 ). ‘
‘ ;
echo ‘359 = ‘ . calculateCounterClockwise ( 359 ). ‘
‘ ;
echo ‘360 = ‘ . calculateCounterClockwise ( 360 ). ‘
‘ ;
?>
test results:
1 = 359
90 = 270
270 = 90
359 = 1
360 = 0
Some transformations including Imagick ::rotateImage() may change «image page» — working area inside the image you work on.
Be careful with future modifications afterwards because the image page would be different from new sizes of the image.
For example, if you do Imagic::cropImage() after rotation, you need to set image page properly, otherwise your crop would be performed relating to wrong coordinates (depending on rotation angle, resulting image size may vary).
$Image = new Imagick ( $sourceImagePath );
$transparent = ‘#00000000’ ;
$Image -> rotateImage (new \ ImagickPixel (), 45 ); // This makes resulting image bigger
// Set page to be of the full size of new image, starting at top left corner (0, 0)
$Image -> setImagePage ( $Image -> getImageWidth (), $Image -> getImageHeight (), 0 , 0 );
$Image -> cropImage ( $crop_w , $crop_h , $crop_x , $crop_y );
?>
rotateImage (new ImagickPixel ( ‘#00000000’ ), 75 ); ?>
If you want to rotate an image by a certain degree you can do this:
header ( ‘content-type: image/jpeg’ );
$imagick = new Imagick ();
$imagick -> readImage ( ‘castle.jpg’ );
$imagick -> rotateImage (new ImagickPixel (), 90 );
print $imagick -> getImage ();
?>
You can rotate an jpg image by -13.55° into a transparent png image with :
$imagick = new Imagick ();
$imagick -> readImage ( ‘my.jpg’ );
$imagick -> rotateImage (new ImagickPixel ( ‘none’ ), — 13.55 );
$imagick -> writeImage ( ‘my_rotated.png’ );
$imagick -> clear ();
$imagick -> destroy ();
?>
- Imagick
- adaptiveBlurImage
- adaptiveResizeImage
- adaptiveSharpenImage
- adaptiveThresholdImage
- addImage
- addNoiseImage
- affineTransformImage
- animateImages
- annotateImage
- appendImages
- autoLevelImage
- blackThresholdImage
- blueShiftImage
- blurImage
- borderImage
- brightnessContrastImage
- charcoalImage
- chopImage
- clampImage
- clear
- clipImage
- clipImagePath
- clipPathImage
- clutImage
- coalesceImages
- colorizeImage
- colorMatrixImage
- combineImages
- commentImage
- compareImageChannels
- compareImageLayers
- compareImages
- compositeImage
- __construct
- contrastImage
- contrastStretchImage
- convolveImage
- count
- cropImage
- cropThumbnailImage
- current
- cycleColormapImage
- decipherImage
- deconstructImages
- deleteImageArtifact
- deleteImageProperty
- deskewImage
- despeckleImage
- destroy
- displayImage
- displayImages
- distortImage
- drawImage
- edgeImage
- embossImage
- encipherImage
- enhanceImage
- equalizeImage
- evaluateImage
- exportImagePixels
- extentImage
- flipImage
- floodFillPaintImage
- flopImage
- forwardFourierTransformImage
- frameImage
- functionImage
- fxImage
- gammaImage
- gaussianBlurImage
- getColorspace
- getCompression
- getCompressionQuality
- getCopyright
- getFilename
- getFont
- getFormat
- getGravity
- getHomeURL
- getImage
- getImageAlphaChannel
- getImageArtifact
- getImageBackgroundColor
- getImageBlob
- getImageBluePrimary
- getImageBorderColor
- getImageChannelDepth
- getImageChannelDistortion
- getImageChannelDistortions
- getImageChannelKurtosis
- getImageChannelMean
- getImageChannelRange
- getImageChannelStatistics
- getImageColormapColor
- getImageColors
- getImageColorspace
- getImageCompose
- getImageCompression
- getImageCompressionQuality
- getImageDelay
- getImageDepth
- getImageDispose
- getImageDistortion
- getImageFilename
- getImageFormat
- getImageGamma
- getImageGeometry
- getImageGravity
- getImageGreenPrimary
- getImageHeight
- getImageHistogram
- getImageInterlaceScheme
- getImageInterpolateMethod
- getImageIterations
- getImageLength
- getImageMimeType
- getImageOrientation
- getImagePage
- getImagePixelColor
- getImageProfile
- getImageProfiles
- getImageProperties
- getImageProperty
- getImageRedPrimary
- getImageRegion
- getImageRenderingIntent
- getImageResolution
- getImagesBlob
- getImageScene
- getImageSignature
- getImageTicksPerSecond
- getImageTotalInkDensity
- getImageType
- getImageUnits
- getImageVirtualPixelMethod
- getImageWhitePoint
- getImageWidth
- getInterlaceScheme
- getIteratorIndex
- getNumberImages
- getOption
- getPackageName
- getPage
- getPixelIterator
- getPixelRegionIterator
- getPointSize
- getQuantum
- getQuantumDepth
- getQuantumRange
- getRegistry
- getReleaseDate
- getResource
- getResourceLimit
- getSamplingFactors
- getSize
- getSizeOffset
- getVersion
- haldClutImage
- hasNextImage
- hasPreviousImage
- identifyFormat
- identifyImage
- implodeImage
- importImagePixels
- inverseFourierTransformImage
- labelImage
- levelImage
- linearStretchImage
- liquidRescaleImage
- listRegistry
- magnifyImage
- mergeImageLayers
- minifyImage
- modulateImage
- montageImage
- morphImages
- morphology
- motionBlurImage
- negateImage
- newImage
- newPseudoImage
- nextImage
- normalizeImage
- oilPaintImage
- opaquePaintImage
- optimizeImageLayers
- pingImage
- pingImageBlob
- pingImageFile
- polaroidImage
- posterizeImage
- previewImages
- previousImage
- profileImage
- quantizeImage
- quantizeImages
- queryFontMetrics
- queryFonts
- queryFormats
- raiseImage
- randomThresholdImage
- readImage
- readImageBlob
- readImageFile
- readimages
- remapImage
- removeImage
- removeImageProfile
- render
- resampleImage
- resetImagePage
- resizeImage
- rollImage
- rotateImage
- rotationalBlurImage
- sampleImage
- scaleImage
- segmentImage
- selectiveBlurImage
- separateImageChannel
- sepiaToneImage
- setBackgroundColor
- setColorspace
- setCompression
- setCompressionQuality
- setFilename
- setFirstIterator
- setFont
- setFormat
- setGravity
- setImage
- setImageAlphaChannel
- setImageArtifact
- setImageBackgroundColor
- setImageBluePrimary
- setImageBorderColor
- setImageChannelDepth
- setImageColormapColor
- setImageColorspace
- setImageCompose
- setImageCompression
- setImageCompressionQuality
- setImageDelay
- setImageDepth
- setImageDispose
- setImageExtent
- setImageFilename
- setImageFormat
- setImageGamma
- setImageGravity
- setImageGreenPrimary
- setImageInterlaceScheme
- setImageInterpolateMethod
- setImageIterations
- setImageMatte
- setImageOrientation
- setImagePage
- setImageProfile
- setImageProperty
- setImageRedPrimary
- setImageRenderingIntent
- setImageResolution
- setImageScene
- setImageTicksPerSecond
- setImageType
- setImageUnits
- setImageVirtualPixelMethod
- setImageWhitePoint
- setInterlaceScheme
- setIteratorIndex
- setLastIterator
- setOption
- setPage
- setPointSize
- setProgressMonitor
- setRegistry
- setResolution
- setResourceLimit
- setSamplingFactors
- setSize
- setSizeOffset
- setType
- shadeImage
- shadowImage
- sharpenImage
- shaveImage
- shearImage
- sigmoidalContrastImage
- sketchImage
- smushImages
- solarizeImage
- sparseColorImage
- spliceImage
- spreadImage
- statisticImage
- steganoImage
- stereoImage
- stripImage
- subImageMatch
- swirlImage
- textureImage
- thresholdImage
- thumbnailImage
- tintImage
- __toString
- transformImageColorspace
- transparentPaintImage
- transposeImage
- transverseImage
- trimImage
- uniqueImageColors
- unsharpMaskImage
- valid
- vignetteImage
- waveImage
- whiteThresholdImage
- writeImage
- writeImageFile
- writeImages
- writeImagesFile
- averageImages
- clone
- colorFloodfillImage
- filter
- flattenImages
- getImageAttribute
- getImageChannelExtrema
- getImageClipMask
- getImageExtrema
- getImageIndex
- getImageMatte
- getImageMatteColor
- getImageSize
- mapImage
- matteFloodfillImage
- medianFilterImage
- mosaicImages
- orderedPosterizeImage
- paintFloodfillImage
- paintOpaqueImage
- paintTransparentImage
- radialBlurImage
- recolorImage
- reduceNoiseImage
- roundCorners
- setImageAttribute
- setImageBias
- setImageBiasQuantum
- setImageClipMask
- setImageIndex
- setImageMatteColor
- setImageOpacity
- transformImage
How to rotate image using PHP (with code example)
To rotate an image using PHP, you need to use the built-in imagerotate() function.
This function allows you to rotate an image in a counterclockwise degree.
To get the image into PHP, you need to use the imagecreatefromjpeg() or imagecreatefrompng() function.
Here’s an example of rotating an image 90 degrees:
Here’s an example of the image output. Image from Unsplash:
When you have a jpg or jpeg file, use the imagecreatefromjpeg() to load the image and imagejpeg() to save it.
When you have a png file, use the imagecreatefrompng() to load the image and imagepng() to save it.
The imagerotate() function only goes counterclockwise (to the left) so keep that in mind as you specify the rotation angle.
And that’s how you rotate an image using PHP. Good work!
Take your skills to the next level ⚡️
I’m sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I’ll send new stuff straight into your inbox!
About
Hello! This website is dedicated to help you learn tech and data science skills with its step-by-step, beginner-friendly tutorials.
Learn statistics, JavaScript and other programming languages using clear examples written for people.Search
Type the keyword below and hit enter
Tags
Click to see all tutorials tagged with: