[PHP-users 4102] Re: pdflib 3.03The function pdf_put_image() and pdf_execute_image() are not available(さらに追伸)
Masashi Ohba
php-users@php.gr.jp
Mon, 03 Dec 2001 22:06:42 +0900
大場です。
以前、理由はいまいちわかってないんですが
php-3.0.18-pdf.patchが3.0.18に当たらなかったわりに
pdf-3.0.16.patchが3.0.18にサクッと当たったので
それを当てた物を使ってるんですが
#なので関数名なんかがちょっと違ってる可能性大
In message "[PHP-users 4100] Re: pdflib 3.03The function pdf_put_image() and
pdf_execute_image()
are not available(さらに追伸)",朝倉 誠 wrote...
>$im = pdf_open_png($pdf,"AKIBA-MAP.png");
>はPHP3ではサポートされていないようですので、OKです。
gw> grep -n png pdf-3.0.16.patch
24:+ PHP_FE(pdf_open_png, NULL)
369:+ /* {{{ proto int pdf_open_png(int pdf, string pngfile)
370:+ Opens a png file and returns an image for placement in a pdf document
372:+ PHP_FUNCTION(pdf_open_png) {
395:+ pdf_image = PDF_open_image_file(pdf,"png",arg2->value.str.val,"",0);
505:+ PHP_FUNCTION(pdf_open_png);
なので、patchの中でpng対応してるんですが
gw> grep -n png php-3.0.18-pdf.patch
gw>
です。patchの中にはpngという文字列は出てきません
patchをあてない素のソースでは
gw# grep -n png *
gd.c:102: {"imagecreatefrompng", php3_imagecreatefrompng, NULL},
gd.c:103: {"imagepng", php3_imagepng,
NULL},
gd.c:423:/* {{{ proto int imagecreatefrompng(string filename)
gd.c:425:void php3_imagecreatefrompng (INTERNAL_FUNCTION_PARAMETERS) {
gd.c:923:/* {{{ proto int imagepng(int im [, string filename])
gd.c:925:void php3_imagepng (INTERNAL_FUNCTION_PARAMETERS) {
image.c:67:const char php3_sig_png[8] =
image.c:108:static struct gfxinfo *php3_handle_png(FILE *fp)
image.c:317: char pngtype[8];
image.c:365: } else if (!memcmp(filetype, php3_sig_png, 3)) {
image.c:367: fread(pngtype, sizeof(pngtype), 1, fp);
image.c:368: if (!memcmp(pngtype, php3_sig_png, 8)) {
image.c:369: result = php3_handle_png(fp);
php3_gd.h:78:extern void php3_imagecreatefrompng (INTERNAL_FUNCTION_PARAMETERS);
php3_gd.h:79:extern void php3_imagepng(INTERNAL_FUNCTION_PARAMETERS);
なのでpdf周りのソース(pdf.c)にはpngという文字列が出てきません
考えるに、pdf-3.0.16.patchが3.0.18に当たってしまうってことは
php-3.0.18の本体にもpatchにもpng対応は取り込まれていない
のではないでしょうか?
ただ、3.0.18+pdf-3.0.16.patchではpatchの通り
pdf.c:133: PHP_FE(pdf_open_png, NULL)
pdf.c:2332:/* {{{ proto int pdf_open_png(int pdf, string pngfile)
pdf.c:2333: Opens a png file and returns an image for placement in a pdf document
pdf.c:2335:PHP_FUNCTION(pdf_open_png) {
pdf.c:2358: pdf_image = PDF_open_image_file(pdf,"png",arg2->value.str.val,"",0);
php3_pdf.h:113:PHP_FUNCTION(pdf_open_png);
が当たりますので、PDFファイルの中に
$pim = pdf_open_png($pdf, "/usr/local/apache/icons/postgresql.png");
で、pngファイルのPostgreSQLの亀の絵が取り込めているのは確認しています。
--------------------------------------------------
Name : 大場正志(Masashi Ohba)
E-mail: ohba@netforce.ne.jp
Add : Fukuoka-city, Japan