【问题标题】:saving cropped images in unique name?以唯一的名称保存裁剪的图像?
【发布时间】:2014-03-07 11:31:11
【问题描述】:

这个脚本可以帮助我裁剪和保存图像。每次我保存它保存的图像都有crop.jpg ..我可以用不同的名称保存它吗?我有一个带有图像名称的输入字段.. "$_POST['imgname']" 我如何使用这个具有图像名称的裁剪图像?

<?php
$canvasImg = $_POST['img'];    
$data = base64_decode($canvasImg);
$File = "captured.jpg"; 
$Handle = fopen($File, 'w');
fwrite($Handle, $data);  
fclose($Handle);

$src_image = imagecreatefrompng($File);
$width = imagesx($src_image);
$height = imagesy($src_image);

$dst_x = 0;
$dst_y = 0;
$src_x = $width*0.350; // Crop Start X
$src_y = $height*0.165; // Crop Srart Y
$dst_w = $width*0.294; // Thumb width
$dst_h = $height*0.470; // Thumb height
$src_w = $dst_w; // $src_x + $dst_w
$src_h = $dst_h; // $src_y + $dst_h

$image = imagecreatetruecolor($dst_w, $dst_h);
imagealphablending($image, false);
$col=imagecolorallocatealpha($image,255,255,255,127);
imagefilledrectangle($image,0,0,$dst_w, $dst_h,$col);
imagealphablending($image,true);

imagecopyresampled($image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
imagealphablending($image,true);
imagealphablending($image,false);
imagesavealpha($image,true);
imagepng($image, "images/crop.jpeg");
imagedestroy($image);
?>

【问题讨论】:

  • imagepng($image, "images/crop.jpeg"); 改变这个。提示:不要总是依赖复制粘贴。
  • 您可以将其重命名为时间戳并保存。
  • 嗨.. 改成什么?很抱歉复制粘贴:)
  • @gumireddy 类似这样

标签: php


【解决方案1】:

如果我正确理解了您的问题,您只需为 imagepng() 创建一个新文件名即可使用。

这似乎是一个简单的解决方案:

$canvasImg = $_POST['img'];    
$data = base64_decode($canvasImg);
$File = "captured.jpg"; 

...

// create a new filesname for the cropped image in $save_to
$save_to = 'images/';
$save_to .= str_replace(array('.jpg','.png'), '', $data ) // remove original extension if it existed
$save_to .= '_crop.jpg';
// use this new name to save the cropped image
imagepng($image, $save_to);

但是您的代码似乎没有多大意义。您接受$_POST['img'] 中的图像名称,然后将其保存到名为capured.jpg 的文件中,然后在$src_image = imagecreatefrompng($File); 中以.png 的形式打开它

我假设您只能接受 .png 文件,在这种情况下,为什么要将其保存为 .jpg

明白我的意思,你的代码似乎有很多混乱。

【讨论】:

  • 嗨,兄弟,我正在工作一个 wordpress 网站..我想为内容拍照..我使用 html2canvas 来完成它..我传递的帖子名称具有图像名称 $_POST[ 'imgname']...所以每次裁剪的图像都可以保存在一个唯一的名称中(postname)..“captured.jpg”拍摄整个屏幕的屏幕截图..然后将捕获的图像的一部分裁剪为crop.jpg .. 代码一切正常.. 但裁剪后的图像每次都替换crop.jpg .. 我如何用帖子名称保存它?
  • 就像我发布的例子一样!
  • 对不起兄弟..它对我不起作用..我在 php 中太糟糕了:(我试图理解并修复它..
  • 糟糕,我忘记了 images/ 文件夹。示例代码我改了,再看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多