人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpについて質問です。
phpであるpng画像の半透明になっている部分を全て除去する手段はありますか?
もしご存知の方がいましたらご教授いただけると幸いです。
よろしくお願いいたします。


●質問者: n_maco2
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP PNG 教授 画像
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● yamaneroom
●0ポイント

ImageMagickを使えばできる。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070704/276677/

◎質問者からの返答

ご回答ありがとうございます。

ImageMagickのマニュアルをざっと読んできたのですが、

私の求めることに使えそうな機能が見当たりませんでした。

大変お手数なのですがどうやればできるのか、もうすこし細かくお教えいただけませんでしょうか。

よろしくお願いいたします。


2 ● guja
●51ポイント

↑↑ yamaneroomさん、なんでやり方を聞いているのに単にリンクだけしかしないんですかね。

同じ回答者として憤りを感じます。不確かな知識なら回答しないでほしいです。


関係ない話題ですみませんでした。半透明ということは、

http://www.kuronowish.com/~django/photo/alpha/png_alpha1.html

にある画像のようなアルファチャンネルの除去でよかったでしょうか。


でしたらGDライブラリが必要になってしまいますが、次の方法で除去ができます。

$im = ImageCreateFromPng('input.png');

imagesavealpha($im, FALSE);

ImagePng($im, 'output.png');

ImageDestroy($im);

http://www.php.net/manual/ja/function.imagesavealpha.php

これをすればアルファチャンネルを保存しなくなるので、要件を満たすとは思うのですがどうでしょうか。

◎質問者からの返答

ご親切にありがとうございます!

が、すみません、言葉不足でした・・・

「アルファ値の除去」

ではなく

「半透明(少しでもアルファ値を持つ)のピクセルを完全に除去する」

という意味でした。

ピクセルを除去なので見えないようになるという想定です。

言葉不足で申し訳ありません。

何か分かることなどあればお教えいただければと思います。

よろしくお願いいたします。


3 ● GoldenDawn
●73ポイント ベストアンサー

「ピクセルを除去」の意味がよく分からなかったので黒にしてみました。

意図と違ったらすみません。

<?php
header('Content-type: image/png') ;

$img = ImageCreateFromPng('image.png');

for ($y = 0; $y < imagesy($img); ++$y) {
 for ($x = 0; $x < imagesy($img); ++$x) {
 $c = imagecolorat($img, $x, $y) ;
 $a = ($c >> 24) & 0xFF ; // アルファ値
 imagesetpixel($img, $x, $y, $a > 0 ? 0 : $c) ; // アルファ値が 1以上なら黒に
 }
}

imagesavealpha($img, FALSE) ; // アルファ値を破棄
ImagePng($img) ;

ImageDestroy($img) ;
?>
◎質問者からの返答

ご回答いただきありがとうございました!

ご提示いただいた手法でうまくいきました!

正確にはその黒の値を透過色指定あげる必要がありましたが、なんとかなりました。

本当にありがとうございました!


4 ● akhs2553
●0ポイント

質問者さんがもしある程度英語が読めるのならば、最初の解答者さんのリンク先の,[ImageMagic]のぺージの指示に従っていけばおそらく可能なのではな

いでしょうか.

◎質問者からの返答

?、リンク先は日本語ですよね?

あとImageMagicのマニュアルも読みましたが、自分の希望の処理を行うためにどういった機能を使って行けばいいのかが理解できませんでした。

多分知識のある方なら何かしら手段はあって気づけたのかもしれないですが・・

なにぶん知識が足りないもので申し訳ありません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ