Rotating images with php

imagerotate

Поворот изображения image на заданный угол angle в градусах.

Центром поворота является центр изображения. Поворачиваемое изображение может отличаться размером от оригинала.

Список параметров

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor() .

Угол поворота в градусах против часовой стрелки.

Цвет фона свободной зоны после поворота.

Если установлено и не равно нулю, прозрачность игнорируются (иначе сохраняется).

Возвращаемые значения

Возвращает ресурс повёрнутого изображения в случае успеха, или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
5.5.0 Эта функция теперь меняет свое поведение при изменении метода интерполяции функцией imagesetinterpolation() .
5.1.0 Добавлен параметр ignore_transparent .

Примеры

Пример #1 Поворот изображения на 180 градусов

Этот пример поворачивает изображения на 180 градусов — верхом вниз.

// Файл и угол поворота
$filename = ‘test.jpg’ ;
$degrees = 180 ;

// Тип содержимого
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 ();
>

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:

    Example of imagerotate output

    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.

    Type the keyword below and hit enter

    Tags

    Click to see all tutorials tagged with:

    Источник

    Читайте также:  Java if dir exists
Оцените статью