[PHP-users 411] デジタルカメラの画像のアップロード

toshinori ito php-users@php.gr.jp
Fri, 29 Jun 2001 17:53:34 +0900


すみません。旧mlにも間違えて送ってしまいました。

はじめまして、イトウと申します。

デジタルカメラの画像をWebよりアップロードをし、サムネイルを作るという処
理がしたいのですがうまく処理できるときと、出来ないときがあります。

環境は

Cobalt Raq3
Apache1.3.20
PHP4.0.5
GD1.8.4

です。

以下のようなスクリプトでアップされた画像の処理を行っているのですが、画像
処理を施していないデジタルカメラの画像をアップロードすると、”真っ黒な画
像”になります。ちなみにFireWorksなどの画像処理ソフトでJpegに保存し直し
たデジタルカメラの画像はうまく処理されます。

以下がスクリプトです。

		$src_im = imagecreatefromjpeg($userfile);

		$dst_im = imagecreate(160, 120);

		imagecopyresized($dst_im,$src_im,0,0,0,0,160,120,640,480); 

		imagejpeg($dst_im, "../image/photo_small/$photo_file");
		imagejpeg($src_im, "../image/photo_big/$photo_file");

単純に640X480の画像をimagecopyresized()で160X120に小さくして、小さい画像
はimage/photosmall/***.jpg 大きい元画像はimage/photobig/***.jpgに保存す
るというものです。

それから、

		$sz_src = getimagesize($userfile);

として、画像情報を取得すると

画像処理ソフトで処理した画像は

width = 640
hight = 480
type = 2
bits = 8
channels = 3

と取得出来ますが、何もしていないデジタルカメラの画像は

width = 
hight = 
type = 
bits = 
channels = 

と情報を取得出来ません。

2つの画像の違いは、水平解像度、垂直解像度がちがうようなのですが・・・
(解像度300と72の違い)
解像度のことがよく理解できておらず・・・わかりません。

exec()などで、shスクリプトからnetpbmを利用し、画像の縮小をすると
うまくいくようなのですが。なぜかPHPのイメージ関数での上記の処理がうまく
いきません。

お知恵を貸していただけませんでしょうか。
よろしくお願いいたします。

--------------------
toshi-i@themis.ocn.ne.jp
toshinori ito