私は写真アップロードアプリに取り組んでおり、ユーザーがカメラからrawファイル(これらはjpegではありません)をアップロードし、サーバーにそれらのjpegバージョンを自動的に作成させる必要があります。私は現在Imagemagickをインストールしていますが、そこにそれを行う方法はないと思います。
カメラは常に新しい生のフォーマットで出てくるので、比較的最新のものを探しているimとコマンドphp exec()もオプションです。
生の変換について何か提案がある人はいますか?
私は写真アップロードアプリに取り組んでおり、ユーザーがカメラからrawファイル(これらはjpegではありません)をアップロードし、サーバーにそれらのjpegバージョンを自動的に作成させる必要があります。私は現在Imagemagickをインストールしていますが、そこにそれを行う方法はないと思います。
カメラは常に新しい生のフォーマットで出てくるので、比較的最新のものを探しているimとコマンドphp exec()もオプションです。
生の変換について何か提案がある人はいますか?
実際、このリストでわかるように、ImageMagickはRAW写真をサポートしています:http://www.imagemagick.org/script/formats.php(例:.NEFニコン写真と.CR2キヤノン写真)。
.CR2写真のサンプルコード:
$im = new Imagick( 'source.CR2' );
$im->setImageFormat( 'jpg' );
$im->writeImage( 'result.jpg' );
$im->clear();
$im->destroy();
さらに簡単に
sudo apt-get install ufraw ufraw-batch
次に、UFRaw(マニュアルページを参照)を使用するか、UFRawを使用するImageMagickを使用します
convert mypic.RAF mypic.jpeg
exec()を使用してアップロードでき、jpgに変換するときに、jpgの「ヒント」を使用して処理を高速化できます。おそらく、ファイル全体ではなく、同じ量のデータを読み取ってjpgを作成します。
メモリから、定義は変換後、画像の前に行われます。
convert -define jpeg:size=128x128 input.raw -thumbnail 128x128 output.jpg
ImagemagickはUfrawを使用してRAWファイルを処理しますが、CR2ファイルでは、ファイルの1つを少し調整する必要があることがわかりました。ファイルがサポートされているかどうかは、Ufrawの遅延に依存すると思います。
サムスンのRAWファイルは問題だと思いますが、Imagemagickだけではありません
これは、この行で4を6に変更して変更したdelegates.xmlファイルです。
<delegate decode="dng:decode" stealth="True" command="dcraw.exe -6 -w -O "%u.ppm" "%i""/>
Imagickを使用してまったく同じページを作成しました。TIFF、DNG、CR2ファイルをJPEGに変換することに成功しました。これを行う前に、このビデオを参照する必要がありますhttps://www.youtube.com/watch?v=q3c6O85_LoA&index=29&list=LLkmyV_KYAFxKz9gE_fEbjTA&t=23s
JavaScript、HTML、PHPを使用したコードは次のとおりです。
<?php
$file=$_FILES['file'];
$fname=$_FILES['file']['name'];
$ftmp=$_FILES['file']['tmp_name'];
$ferr=$_FILES['file']['error'];
$check=explode(".",$fname);
$ext=end($check);
if(!$ftmp)
{
//echo"ERROR: Please select a file first!";
?>
<html>
<script>
alert("ERROR: Please select a file first!");
location.href='/Image/1.html';
</script>
</html>
<?php
}
else if(!preg_match("/\.(tif|tiff|cr2|pef|nef|dng)$/i",$fname))
{
//echo"ERROR: File is not in TIF,TIFF,CR2,PEF,NEF or DNG</br>";
//echo"File is of $ext format";
?>
<html>
<script>
alert("ERROR: File is not in TIF,TIFF,CR2,PEF,NEF or DNG");
location.href='/Image/1.html';
</script>
</html>
<?php
}
else
{
//echo".$ext File uploaded";
?>
<html>
<script>
alert("File uploaded");
</script>
</html>
<?php
$im=new Imagick($ftmp);
$im->setImageFormat('jpg');
file_put_contents("/var/www/html/Image/Converted/a.jpg",$im);//Path where converted image will be saved on localhost.
?>
<html>
<script>
function ok()
{
location.href='/Image/1.html';
}
</script>
<img src="/Image/Converted/a.jpg" height="900" width="600">
<input type=Button Value=Done onclick="ok()">
</html>
<?php
$im->clear();
$im->destroy();
}?>
HTMLコード。phpファイルの名前をアクションタグに挿入します。
<html>
<body>
<h1 align=center>Upload image</h1>
<form action=*.php method=POST enctype='multipart/form-data'>
Please select the file:<br>
<input type=file name=file><br>
<input type=SUBMIT value=Submit>
<input type=Reset value=Reset>
</form>
</body>