4

我有一个函数可以生成适合圆圈下部的文本。因为我不知道任何其他方法可以使函数适合圆的上部使其面向我,所以我想旋转图像,在其上书写,将其旋转回来并再次在其上书写。如何在不更改图像名称的情况下做到这一点?

我尝试过这样的事情:

<?php
function  create_image()
{

$im = @imagecreate(140, 140)or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);

imageellipse ( $im , $cx , $cy , $size*2 , $size*2 , $black );

write($im,$cx,$cy,$size,$s,$e,$black,$text1,$font,$size,$pad);
imagerotate($im, 180,0);
write($im,$cx,$cy,$size,$s,$e,$black,$text2,$font,$size,$pad);
imagerotate($im, 180,0);

imagepng($im,"image.png");
imagedestroy($im);  

}
?>

<?php
create_image();
print "<img src=image.png?".date("U").">";
?>

但它不起作用。它不会旋转图像。

你能帮我么?

谢谢!

4

3 回答 3

4

你为什么不直接拍摄普通图像并添加一些 css 到它

CSS

.yourImage {
 -webkit-transform: rotate(-90deg);
 -moz-transform: rotate(-90deg);
 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}

HTML

<img class="yourImage" src="originalImage.jpg">
于 2012-11-10T20:26:33.640 回答
3

不知道为什么你需要旋转两次..但这就是你的代码应该是什么样子

function create_image($img) {
    $im = @imagecreatefrompng($img) or die("Cannot Initialize new GD image stream");
    $rotate = imagerotate($im, 180, 0);
    imagepng($rotate);
    imagedestroy($rotate);
    imagedestroy($im);
}

header('Content-Type: image/png');
$image = "a.png";
create_image($image);
于 2012-11-10T20:37:49.737 回答
2

您可以使用 php 旋转功能轻松完成。这是简单的代码

<?php 
 $image = 'test.jpg';

// The file you are rotating

//How many degrees you wish to rotate
 $degrees = 180;

// This sets the image type to .jpg but can be changed to png or gif
 header('Content-type: image/jpeg') ;

// Create the canvas
   $src = $image;
$system = explode(".", $src);

if (preg_match("/jpg|jpeg/", $system[1]))
{
    $src_img=imagecreatefromjpeg($src);
}
if (preg_match("/png/", $system[1]))
{
    $src_img = imagecreatefrompng($src);
}
if (preg_match("/gif/", $system[1]))
{
    $src_img = imagecreatefromgif($src);
}

  // Rotates the image
  $rotate = imagerotate($src_img, $degrees, 0) ;

  // Outputs a jpg image, you could change this to gif or png if needed
  if (preg_match("/png/", $system[1]))
{
    imagepng($rotate,$image); 
} 
else if (preg_match("/gif/", $system[1]))
{
    imagegif($rotate, $image);
}
else
{
    imagejpeg($rotate, $image); 
}

imagedestroy($rotate);  
imagedestroy($src_img);

   ?>
于 2014-05-21T15:54:04.423 回答