4

タイトルが示すように..画像を新しいフォルダに移動/名前変更する方法は? これまでのところ、新しい画像のサイズが変更/トリミングされていますが、「new /」フォルダーに移動しません。

$in_filename = '4csrWqu9ngv.jpg';

list($width, $height) = getimagesize($in_filename);

$offset_x = 0;
$offset_y = 0;

$new_height = $height - 65;
$new_width  = $width;

$image     = imagecreatefromjpeg($in_filename);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);

header('Content-Type: image/jpeg');
imagejpeg($new_image);

$move_new = imagejpeg($new_image);

rename($move_new, 'new/' . $move_new);

いつものように、どんな助けも大歓迎です:)

4

2 に答える 2

5

あなたのコードにはほとんど間違いがありませんでした。の出力imagejpegはブール値であるため、名前の変更は常に失敗しました。また、サイズ変更された画像を保存したこともありません。の 2 番目のパラメーターを使用しimagejpeg、新しいイメージの適切なファイル名を指定する必要があります。また、ディレクトリnewが存在することを確認してください。存在しない場合、名前の変更は失敗します。

固定コード:

$in_filename = '4csrWqu9ngv.jpg';

list($width, $height) = getimagesize($in_filename);

$offset_x = 0;
$offset_y = 0;

$new_height = $height - 65;
$new_width  = $width;

$image = imagecreatefromjpeg($in_filename);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);

/* Uncomment in case you want it also outputted
header('Content-Type: image/jpeg');
imagejpeg($new_image);
*/

imagejpeg($new_image, $in_filename);

rename($in_filename, 'new/' . $in_filename);
于 2011-04-17T10:25:40.837 に答える
0

「新しい」フォルダは存在しますか?そうでない場合は、最初に を使用して作成する必要がありますmkdir

于 2011-04-17T08:43:17.143 に答える