6

大きな画像をphpスクリプトを介してサムネイルに変換し、それをbase64にエンコードして、jsonを介してAndroidアプリに送信できるようにする必要があるアプリを作成しています。画像のサイズ変更に問題があります。それを行うのに役立つphpスクリプトが必要です

4

7 に答える 7

7

この画像サイズ変更機能のチュートリアルを試すことができます

また、このコードをサイズ変更機能 (GD) に使用することもできます。

<?php

$thumb = new Imagick();
$thumb->readImage('myimage.gif');    $thumb->resizeImage(320,240,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage('mythumb.gif');
$thumb->clear();
$thumb->destroy(); 

?>

Or, a shorter version of the same:

<?php

$thumb = new Imagick('myimage.gif');

$thumb->resizeImage(320,240,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage('mythumb.gif');

$thumb->destroy(); 

?>

また、画像のサイズ変更については、このリンクも参照してください

1. YETANOTHERLinks

2. 9レッスン

また、画像のBase64を変換します このリンクを参照してください

于 2013-07-23T06:03:15.780 に答える
1

たとえば、TimThumbを使用できます

timthumb.php?src=img.jpg&h=height&w=width

次に、画像を base64 にエンコードする必要があります: 画像を base64 エンコーディングに変換するには?

于 2013-07-23T05:39:33.700 に答える
1

画像のサイズを変更するには、 imagick - http://php.net/manual/en/imagick.resizeimage.phpを試すことができます。サンプル コード: サムネイルを作成するには:

<?php

$thumb = new Imagick();
$thumb->readImage('myimage.gif');    
$thumb->resizeImage(320,240,Imagick::FILTER_LANCZOS,1);
$thumb->writeImage('mythumb.gif');
$thumb->clear();
$thumb->destroy(); 

?>
于 2013-07-23T05:36:19.460 に答える
1

GD を使用している場合、コードは次のようになります。

<?php
// File and new size
$filename = 'test.jpg';

// Content type
header('Content-Type: image/jpeg');

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = YOUR REQUIRED WIDTH;
$newheight = YOUR REQUIRED HEIGHT;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Output
imagejpeg($thumb);
?>
于 2013-07-23T05:39:27.187 に答える
0

投稿は少し古いですが、誰かが望むなら、私はこの機能を作りました

function save_image_from_64($path, $name, $dimension, $original)
{
    header("Content-Type: image/jpeg");
    list($width,$height) = explode('x',$dimension); //Getting new height and width
    $img = str_replace('data:image/jpeg;base64,', '', $original); //Getting the base64 image
    $image = imagecreatefromstring(base64_decode($img));
    $new_image = imagecreatetruecolor($width, $height);
    imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesy($image));
    imagejpeg($new_image, $path.$name.'.jpg'); // saving the image
}

save_image_from_64("cdn/","test","800x200","data:image/jpeg;base64,/9j/4AAQS...");
于 2016-05-09T14:20:20.493 に答える