画像の背景を透過させたいと思い下記コードを実行してみたのですが、期待通りの状態になりませんでした。(体の周りに白が残ってしまう)
$src = 'http://ec2.images-amazon.com/images/I/41VI47EYca …
$img = imagecreatefromjpeg($src);
$color = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $color);
imagepng($img);
imagedestroy($img);
そこで、255, 255, 255だけではなく250, 250, 250くらいも透過してみようと思い
$color = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $color);
$color = imagecolorallocate($img, 250, 250, 250);
imagecolortransparent($img, $color);
と、透過処理を二回続けてみました。すると、最初の状態よりも透過が上手く行われていない結果となってしまいました。
複数色を透過処理することはできないのでしょうか。
imagealphablending, imagesavealphaや、透過するごとに画像を保存して読み込んで…ということをしてみたのですがそれもやはり同じような結果でした。
255~250くらいまで、複数色を透過したとしても綺麗に背景だけ透過されるという結果は得られないかもしれませんが、もしよろしければ複数色の透過を行うコードを教えて頂ければ幸いです。
複数色を透過させる方法、もしくは他の方法でも良いので綺麗に背景だけ透過させる方法がありましたら教えて下さい。
宜しくお願い致します。
No.1
- 回答日時:
どうせ透過するなら複数色である必要はないのでは?
(なぜなら結局みえないのだから)
同じ色に変更した上で透過設定してみては?
この回答への補足
回答有り難うございます。
同じ色に変更ということですが、調べてみたところimagefilltoborderという関数が見つかりました。
ですが、この関数を使って上手く白っぽい背景を全て255, 255, 255にすることはできるのでしょうか。もしよろしければ変更をするための方法を大まかにでも良いのでご教授願えないでしょうか。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
ざっと白っぽいjpegを透過pngにする方法です
元画像はwikipediaにあった雲の画像を適当に
<?PHP
$imgname="hogehoge.jpg";
$im = imagecreatefromjpeg($imgname);
//$im = imagecreatefrompng($imgname); //pngから読むならこれ
$background = imagecolorallocate($im, 255, 0, 0); //とりあえず真っ赤を背景に
list($width, $height) = getimagesize($imgname);
for($i=0;$i<$width;$i++){
for($j=0;$j<$height;$j++){
$rgb = imagecolorat($im, $i,$j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r>200 and $g>200 and $b>200) imagefill($im, $i, $j, $background);
}
}
imagecolortransparent($im, $background);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 角丸画像の背景色を透明にしたいです 1 2023/06/23 23:15
- Illustrator(イラストレーター) Illustratorで白い部分のみを透過させたいです。 2 2022/10/10 22:27
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- Photoshop(フォトショップ) 【至急】 ウェブサイトやアプリとかでよく見かける、添付画像のように背景にあるものをぼかしつつ透過する 2 2023/07/17 10:57
- Photoshop(フォトショップ) photoshopについて このサイトにあるような方法を背景透過している画像にやると、雷を纏ったよう 1 2022/06/17 18:51
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- 化学 シリコンの透過率についてです。 シリコンの波長633nmの可視光の透過率について複素屈折率から計算し 2 2023/02/07 11:32
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- Photoshop(フォトショップ) 塗りつぶした画像を透過させない方法について。上からレイヤーで塗った場合は透過できると聞きましたが、レ 1 2022/10/22 13:41
- 画像編集・動画編集・音楽編集 動画の不要な部分を透過出来るフリーソフトありませんか? 3 2023/06/08 09:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
SQLiteに画像を格納したい
-
VBAについて教えてください
-
VBSの「MsgBox」について
-
MatlabによるRGB空間からYUV空...
-
onedrive にexcelファイルをア...
-
リンク先を隠す方法はないでし...
-
ImageCreate関数が undefined f...
-
libmcrypt の使用について
-
PHPのif文でその処理を途中で抜...
-
ローカル環境でのメール送信
-
ZendFrameworlkでZend_Session...
-
use と requireの違いは?
-
【PHP】tmp_nameの命名規約につ...
-
PHPでファイルアップロードを中...
-
youtubeに音声のみのmp4ファイ...
-
ワードプレスサイト PHP8.0.25...
-
PHPからPerlにデータを渡して結...
-
mb_send_mailを実行するとエラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
VBAでJPGサイズ変更
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
SQLiteに画像を格納したい
-
アップロード画像数でCSSを分け...
-
PythonのTkinter詳しい方へ。画...
-
ビットマップ画像を読み込むプ...
-
Illustratorで文字と画像を流し...
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
pictureboxに表示した画像のフ...
-
OpenGLで描いて画像ファイル出力
-
ListViewコントロールでサムネ...
-
BLOBデーターの画像の表示方法...
-
「imagejpeg」(GD)で作成した...
-
★PHP★画像アップロードの際に余...
-
【PHP】画像が表示されず「×」...
-
画像リストを作りたい
-
GDを使って画像の背景を透過さ...
おすすめ情報