Imported from libpng-1.2.8rc3.tar
This commit is contained in:
parent
73b029f9d3
commit
c3dda6daea
10
ANNOUNCE
10
ANNOUNCE
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Libpng 1.2.8rc2 - November 26, 2004
|
Libpng 1.2.8rc3 - November 28, 2004
|
||||||
|
|
||||||
This is not intended to be a public release. It will be replaced
|
This is not intended to be a public release. It will be replaced
|
||||||
within a few weeks by a public version or by another test version.
|
within a few weeks by a public version or by another test version.
|
||||||
@ -31,6 +31,7 @@ version 1.2.8beta5 [November 20, 2004]
|
|||||||
Revised handling of SPECIALBUILD, PRIVATEBUILD,
|
Revised handling of SPECIALBUILD, PRIVATEBUILD,
|
||||||
PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
|
PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
|
||||||
version 1.2.8rc1 [Novermber 24, 2004]
|
version 1.2.8rc1 [Novermber 24, 2004]
|
||||||
|
Inadvertently installed a supposedly faster test version of pngrutil.c
|
||||||
Moved handling of BUILD macros from pngconf.h to png.h
|
Moved handling of BUILD macros from pngconf.h to png.h
|
||||||
Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
|
Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
|
||||||
omitted from beta5.
|
omitted from beta5.
|
||||||
@ -38,6 +39,13 @@ version 1.2.8rc1 [Novermber 24, 2004]
|
|||||||
Despammed mailing addresses by masking "@" with "at".
|
Despammed mailing addresses by masking "@" with "at".
|
||||||
version 1.2.8rc2 [November 26, 2004]
|
version 1.2.8rc2 [November 26, 2004]
|
||||||
Added two missing "\" in png.h
|
Added two missing "\" in png.h
|
||||||
|
Change tests in pngread.c and pngpread.c to
|
||||||
|
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
|
||||||
|
png_do_read_transformations(png_ptr);
|
||||||
|
version 1.2.8rc3 [November 28, 2004]
|
||||||
|
Reverted pngrutil.c to version libpng-1.2.8beta5.
|
||||||
|
Added scripts/makefile.elf with supporting code in pngconf.h for symbol
|
||||||
|
versioning (John Bowler).
|
||||||
|
|
||||||
Send comments/corrections/commendations to
|
Send comments/corrections/commendations to
|
||||||
png-implement at ccrc.wustl.edu (subscription required; write to
|
png-implement at ccrc.wustl.edu (subscription required; write to
|
||||||
|
6
CHANGES
6
CHANGES
@ -1394,12 +1394,16 @@ version 1.2.8rc1 [November 24, 2004]
|
|||||||
omitted from beta5.
|
omitted from beta5.
|
||||||
Revised scripts/pngw32.rc
|
Revised scripts/pngw32.rc
|
||||||
Despammed mailing addresses by masking "@" with "at".
|
Despammed mailing addresses by masking "@" with "at".
|
||||||
|
Inadvertently installed a supposedly faster test version of pngrutil.c
|
||||||
version 1.2.8rc2 [November 26, 2004]
|
version 1.2.8rc2 [November 26, 2004]
|
||||||
Added two missing "\" in png.h
|
Added two missing "\" in png.h
|
||||||
Change tests in pngread.c and pngpread.c to
|
Change tests in pngread.c and pngpread.c to
|
||||||
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
|
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
|
||||||
png_do_read_transformations(png_ptr);
|
png_do_read_transformations(png_ptr);
|
||||||
|
version 1.2.8rc3 [November 28, 2004]
|
||||||
|
Reverted pngrutil.c to version libpng-1.2.8beta5.
|
||||||
|
Added scripts/makefile.elf with supporting code in pngconf.h for symbol
|
||||||
|
versioning (John Bowler).
|
||||||
|
|
||||||
Send comments/corrections/commendations to
|
Send comments/corrections/commendations to
|
||||||
png-implement at ccrc.wustl.edu (subscription required; write to
|
png-implement at ccrc.wustl.edu (subscription required; write to
|
||||||
|
16
INSTALL
16
INSTALL
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Installing libpng version 1.2.8rc2 - November 26, 2004
|
Installing libpng version 1.2.8rc3 - November 28, 2004
|
||||||
|
|
||||||
Before installing libpng, you must first install zlib. zlib
|
Before installing libpng, you must first install zlib. zlib
|
||||||
can usually be found wherever you got libpng. zlib can be
|
can usually be found wherever you got libpng. zlib can be
|
||||||
@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
|
|||||||
version of zlib that's installed.
|
version of zlib that's installed.
|
||||||
|
|
||||||
You can rename the directories that you downloaded (they
|
You can rename the directories that you downloaded (they
|
||||||
might be called "libpng-1.2.8rc2" or "lpng109" and "zlib-1.2.1"
|
might be called "libpng-1.2.8rc3" or "lpng109" and "zlib-1.2.1"
|
||||||
or "zlib121") so that you have directories called "zlib" and "libpng".
|
or "zlib121") so that you have directories called "zlib" and "libpng".
|
||||||
|
|
||||||
Your directory structure should look like this:
|
Your directory structure should look like this:
|
||||||
@ -66,10 +66,12 @@ The files that are presently available in the scripts directory
|
|||||||
include
|
include
|
||||||
|
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
|
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||||
|
gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2)
|
(gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.gcmmx => Linux/ELF makefile
|
makefile.gcmmx => Linux/ELF makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2,
|
(gcc, creates libpng12.so.0.1.2.8rc3,
|
||||||
uses assembler code tuned for Intel MMX platform)
|
uses assembler code tuned for Intel MMX platform)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
@ -92,12 +94,12 @@ include
|
|||||||
makefile.openbsd => OpenBSD makefile
|
makefile.openbsd => OpenBSD makefile
|
||||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||||
makefile.sggcc => Silicon Graphics (gcc,
|
makefile.sggcc => Silicon Graphics (gcc,
|
||||||
creates libpng12.so.0.1.2.8rc2)
|
creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.solaris => Solaris 2.X makefile (gcc,
|
makefile.solaris => Solaris 2.X makefile (gcc,
|
||||||
creates libpng12.so.0.1.2.8rc2)
|
creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.so9 => Solaris 9 makefile (gcc,
|
makefile.so9 => Solaris 9 makefile (gcc,
|
||||||
creates libpng12.so.0.1.2.8rc2)
|
creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
|
2
KNOWNBUG
2
KNOWNBUG
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Known bugs in libpng version 1.2.8rc2
|
Known bugs in libpng version 1.2.8rc3
|
||||||
|
|
||||||
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
|
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
|
||||||
reading interlaced PNG files, when assembler code is enabled but running
|
reading interlaced PNG files, when assembler code is enabled but running
|
||||||
|
4
LICENSE
4
LICENSE
@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
|||||||
If you modify libpng you may insert additional notices immediately following
|
If you modify libpng you may insert additional notices immediately following
|
||||||
this sentence.
|
this sentence.
|
||||||
|
|
||||||
libpng version 1.2.6, November 26, 2004, is
|
libpng version 1.2.6, November 28, 2004, is
|
||||||
Copyright (c) 2004 Glenn Randers-Pehrson, and is
|
Copyright (c) 2004 Glenn Randers-Pehrson, and is
|
||||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
with the following individual added to the list of Contributing Authors
|
with the following individual added to the list of Contributing Authors
|
||||||
@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
November 26, 2004
|
November 28, 2004
|
||||||
|
14
README
14
README
@ -1,4 +1,4 @@
|
|||||||
README for libpng version 1.2.8rc2 - November 26, 2004 (shared library 12.0)
|
README for libpng version 1.2.8rc3 - November 28, 2004 (shared library 12.0)
|
||||||
See the note about version numbers near the top of png.h
|
See the note about version numbers near the top of png.h
|
||||||
|
|
||||||
See INSTALL for instructions on how to install libpng.
|
See INSTALL for instructions on how to install libpng.
|
||||||
@ -188,10 +188,12 @@ Files in this distribution:
|
|||||||
scripts => Directory containing scripts for building libpng:
|
scripts => Directory containing scripts for building libpng:
|
||||||
descrip.mms => VMS makefile for MMS or MMK
|
descrip.mms => VMS makefile for MMS or MMK
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
|
makefile.elf => Linux/ELF makefile symbol versioning,
|
||||||
|
gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2)
|
(gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.gcmmx => Linux/ELF makefile
|
makefile.gcmmx => Linux/ELF makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2,
|
(gcc, creates libpng12.so.0.1.2.8rc3,
|
||||||
uses assembler code tuned for Intel MMX platform)
|
uses assembler code tuned for Intel MMX platform)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
@ -213,12 +215,12 @@ Files in this distribution:
|
|||||||
makefile.openbsd => OpenBSD makefile
|
makefile.openbsd => OpenBSD makefile
|
||||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||||
makefile.sggcc => Silicon Graphics
|
makefile.sggcc => Silicon Graphics
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2)
|
(gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.solaris => Solaris 2.X makefile
|
makefile.solaris => Solaris 2.X makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2)
|
(gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.so9 => Solaris 9 makefile
|
makefile.so9 => Solaris 9 makefile
|
||||||
(gcc, creates libpng12.so.0.1.2.8rc2)
|
(gcc, creates libpng12.so.0.1.2.8rc3)
|
||||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
|
4
Y2KINFO
4
Y2KINFO
@ -1,13 +1,13 @@
|
|||||||
Y2K compliance in libpng:
|
Y2K compliance in libpng:
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
November 26, 2004
|
November 28, 2004
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer
|
Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
|
4
configure
vendored
4
configure
vendored
@ -1,13 +1,13 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
echo "
|
echo "
|
||||||
There is no \"configure\" script in this distribution of
|
There is no \"configure\" script in this distribution of
|
||||||
libpng-1.2.8rc2.
|
libpng-1.2.8rc3.
|
||||||
|
|
||||||
Instead, please copy the appropriate makefile for your system from the
|
Instead, please copy the appropriate makefile for your system from the
|
||||||
\"scripts\" directory. Read the INSTALL file for more details.
|
\"scripts\" directory. Read the INSTALL file for more details.
|
||||||
|
|
||||||
Update, July 2004: you can get a "configure" based distribution
|
Update, July 2004: you can get a "configure" based distribution
|
||||||
from the libpng distribution sites. Download the file
|
from the libpng distribution sites. Download the file
|
||||||
libpng-1.2.8rc2-config.tar.gz
|
libpng-1.2.8rc3-config.tar.gz
|
||||||
"
|
"
|
||||||
|
|
||||||
|
20
libpng.3
20
libpng.3
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNG 3 "November 26, 2004"
|
.TH LIBPNG 3 "November 28, 2004"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc2
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc3
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
@ -781,7 +781,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
|
|||||||
.SH LIBPNG.TXT
|
.SH LIBPNG.TXT
|
||||||
libpng.txt - A description on how to use and modify libpng
|
libpng.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.2.8rc2 - November 26, 2004
|
libpng version 1.2.8rc3 - November 28, 2004
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
@ -3685,13 +3685,13 @@ application:
|
|||||||
|
|
||||||
.SH IX. Y2K Compliance in libpng
|
.SH IX. Y2K Compliance in libpng
|
||||||
|
|
||||||
November 26, 2004
|
November 28, 2004
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
@ -3840,8 +3840,8 @@ the first widely used release:
|
|||||||
1.0.17 10 10017 12.so.0.1.0.17
|
1.0.17 10 10017 12.so.0.1.0.17
|
||||||
1.2.7 13 10207 12.so.0.1.2.7
|
1.2.7 13 10207 12.so.0.1.2.7
|
||||||
1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
||||||
1.0.18rc1-2 10 10018 12.so.0.1.0.18rc1-2
|
1.0.18rc1-3 10 10018 12.so.0.1.0.18rc1-3
|
||||||
1.2.8rc1-2 13 10208 12.so.0.1.2.8rc1-2
|
1.2.8rc1-3 13 10208 12.so.0.1.2.8rc1-3
|
||||||
|
|
||||||
Henceforth the source version will match the shared-library minor
|
Henceforth the source version will match the shared-library minor
|
||||||
and patch numbers; the shared-library major version number will be
|
and patch numbers; the shared-library major version number will be
|
||||||
@ -3897,7 +3897,7 @@ possible without all of you.
|
|||||||
|
|
||||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||||
|
|
||||||
Libpng version 1.2.8rc2 - November 26, 2004:
|
Libpng version 1.2.8rc3 - November 28, 2004:
|
||||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||||
|
|
||||||
@ -3915,7 +3915,7 @@ included in the libpng distribution, the latter shall prevail.)
|
|||||||
If you modify libpng you may insert additional notices immediately following
|
If you modify libpng you may insert additional notices immediately following
|
||||||
this sentence.
|
this sentence.
|
||||||
|
|
||||||
libpng version 1.2.6, November 26, 2004, is
|
libpng version 1.2.6, November 28, 2004, is
|
||||||
Copyright (c) 2004 Glenn Randers-Pehrson, and is
|
Copyright (c) 2004 Glenn Randers-Pehrson, and is
|
||||||
distributed according to the same disclaimer and license as libpng-1.2.5
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
with the following individual added to the list of Contributing Authors
|
with the following individual added to the list of Contributing Authors
|
||||||
@ -4014,7 +4014,7 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
November 26, 2004
|
November 28, 2004
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
libpng.txt - A description on how to use and modify libpng
|
libpng.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.2.8rc2 - November 26, 2004
|
libpng version 1.2.8rc3 - November 28, 2004
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
@ -2904,13 +2904,13 @@ application:
|
|||||||
|
|
||||||
IX. Y2K Compliance in libpng
|
IX. Y2K Compliance in libpng
|
||||||
|
|
||||||
November 26, 2004
|
November 28, 2004
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNGPF 3 "November 26, 2004"
|
.TH LIBPNGPF 3 "November 28, 2004"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc2
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc3
|
||||||
(private functions)
|
(private functions)
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB\fB#include <png.h>\fP\fP
|
\fB\fB#include <png.h>\fP\fP
|
||||||
|
2
png.5
2
png.5
@ -1,4 +1,4 @@
|
|||||||
.TH PNG 5 "November 26, 2004"
|
.TH PNG 5 "November 28, 2004"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
png \- Portable Network Graphics (PNG) format
|
png \- Portable Network Graphics (PNG) format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
6
png.c
6
png.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -13,7 +13,7 @@
|
|||||||
#include "png.h"
|
#include "png.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef version_1_2_8rc2 Your_png_h_is_not_version_1_2_8rc2;
|
typedef version_1_2_8rc3 Your_png_h_is_not_version_1_2_8rc3;
|
||||||
|
|
||||||
/* Version information for C files. This had better match the version
|
/* Version information for C files. This had better match the version
|
||||||
* string defined in png.h. */
|
* string defined in png.h. */
|
||||||
@ -680,7 +680,7 @@ png_charp PNGAPI
|
|||||||
png_get_copyright(png_structp png_ptr)
|
png_get_copyright(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (&png_ptr != NULL) /* silence compiler warning about unused png_ptr */
|
if (&png_ptr != NULL) /* silence compiler warning about unused png_ptr */
|
||||||
return ((png_charp) "\n libpng version 1.2.8rc2 - November 26, 2004\n\
|
return ((png_charp) "\n libpng version 1.2.8rc3 - November 28, 2004\n\
|
||||||
Copyright (c) 1998-2004 Glenn Randers-Pehrson\n\
|
Copyright (c) 1998-2004 Glenn Randers-Pehrson\n\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\n\
|
Copyright (c) 1996-1997 Andreas Dilger\n\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
||||||
|
22
png.h
22
png.h
@ -1,6 +1,6 @@
|
|||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@ -8,7 +8,7 @@
|
|||||||
* Authors and maintainers:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||||
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.2.8rc2 - November 26, 2004: Glenn
|
* libpng versions 0.97, January 1998, through 1.2.8rc3 - November 28, 2004: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@ -107,8 +107,8 @@
|
|||||||
* 1.0.17 10 10017 12.so.0.1.0.17
|
* 1.0.17 10 10017 12.so.0.1.0.17
|
||||||
* 1.2.7 13 10207 12.so.0.1.2.7
|
* 1.2.7 13 10207 12.so.0.1.2.7
|
||||||
* 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
* 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
|
||||||
* 1.0.18rc1-2 10 10018 12.so.0.1.0.18rc1-2
|
* 1.0.18rc1-3 10 10018 12.so.0.1.0.18rc1-3
|
||||||
* 1.2.8rc1-2 13 10208 12.so.0.1.2.8rc1-2
|
* 1.2.8rc1-3 13 10208 12.so.0.1.2.8rc1-3
|
||||||
*
|
*
|
||||||
* Henceforth the source version will match the shared-library major
|
* Henceforth the source version will match the shared-library major
|
||||||
* and minor numbers; the shared-library major version number will be
|
* and minor numbers; the shared-library major version number will be
|
||||||
@ -138,7 +138,7 @@
|
|||||||
* If you modify libpng you may insert additional notices immediately following
|
* If you modify libpng you may insert additional notices immediately following
|
||||||
* this sentence.
|
* this sentence.
|
||||||
*
|
*
|
||||||
* libpng versions 1.2.6, August 15, 2004, through 1.2.8rc2, November 26, 2004, are
|
* libpng versions 1.2.6, August 15, 2004, through 1.2.8rc3, November 28, 2004, are
|
||||||
* Copyright (c) 2004 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2004 Glenn Randers-Pehrson, and are
|
||||||
* distributed according to the same disclaimer and license as libpng-1.2.5
|
* distributed according to the same disclaimer and license as libpng-1.2.5
|
||||||
* with the following individual added to the list of Contributing Authors:
|
* with the following individual added to the list of Contributing Authors:
|
||||||
@ -250,13 +250,13 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* November 26, 2004
|
* November 28, 2004
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
*
|
*
|
||||||
* This is your unofficial assurance that libpng from version 0.71 and
|
* This is your unofficial assurance that libpng from version 0.71 and
|
||||||
* upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
|
* upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
|
||||||
* versions were also Y2K compliant.
|
* versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
@ -312,9 +312,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.2.8rc2"
|
#define PNG_LIBPNG_VER_STRING "1.2.8rc3"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.2.8rc2 - November 26, 2004 (header)\n"
|
" libpng version 1.2.8rc3 - November 28, 2004 (header)\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 0
|
#define PNG_LIBPNG_VER_SONUM 0
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 13
|
#define PNG_LIBPNG_VER_DLLNUM 13
|
||||||
@ -326,7 +326,7 @@
|
|||||||
/* This should match the numeric part of the final component of
|
/* This should match the numeric part of the final component of
|
||||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_BUILD 2
|
#define PNG_LIBPNG_VER_BUILD 3
|
||||||
|
|
||||||
/* Release Status */
|
/* Release Status */
|
||||||
#define PNG_LIBPNG_BUILD_ALPHA 1
|
#define PNG_LIBPNG_BUILD_ALPHA 1
|
||||||
@ -1354,7 +1354,7 @@ struct png_struct_def
|
|||||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
* do not agree upon the version number.
|
* do not agree upon the version number.
|
||||||
*/
|
*/
|
||||||
typedef png_structp version_1_2_8rc2;
|
typedef png_structp version_1_2_8rc3;
|
||||||
|
|
||||||
typedef png_struct FAR * FAR * png_structpp;
|
typedef png_struct FAR * FAR * png_structpp;
|
||||||
|
|
||||||
|
13
pngconf.h
13
pngconf.h
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -1322,6 +1322,17 @@ typedef z_stream FAR * png_zstreamp;
|
|||||||
# define PNG_IMPEXP
|
# define PNG_IMPEXP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PNG_BUILDSYMS
|
||||||
|
# ifndef PNG_EXPORT
|
||||||
|
# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END
|
||||||
|
# endif
|
||||||
|
# ifdef PNG_USE_GLOBAL_ARRAYS
|
||||||
|
# ifndef PNG_EXPORT_VAR
|
||||||
|
# define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_EXPORT
|
#ifndef PNG_EXPORT
|
||||||
# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
|
# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngerror.c - stub functions for i/o and memory allocation
|
/* pngerror.c - stub functions for i/o and memory allocation
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
|
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
|
||||||
* for Intel's performance analysis of the MMX vs. non-MMX code.
|
* for Intel's performance analysis of the MMX vs. non-MMX code.
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* Copyright (c) 1998, Intel Corporation
|
* Copyright (c) 1998, Intel Corporation
|
||||||
|
2
pngget.c
2
pngget.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngget.c - retrieval of values from info struct
|
/* pngget.c - retrieval of values from info struct
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
2
pngmem.c
2
pngmem.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngmem.c - stub functions for memory allocation
|
/* pngmem.c - stub functions for memory allocation
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngread.c - read a PNG file
|
/* pngread.c - read a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -806,7 +806,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
* not called png_set_interlace_handling(), the display_row buffer will
|
* not called png_set_interlace_handling(), the display_row buffer will
|
||||||
* be ignored, so pass NULL to it.
|
* be ignored, so pass NULL to it.
|
||||||
*
|
*
|
||||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc2
|
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
@ -856,7 +856,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
|
|||||||
* only call this function once. If you desire to have an image for
|
* only call this function once. If you desire to have an image for
|
||||||
* each pass of a interlaced image, use png_read_rows() instead.
|
* each pass of a interlaced image, use png_read_rows() instead.
|
||||||
*
|
*
|
||||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc2
|
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc3
|
||||||
*/
|
*/
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_read_image(png_structp png_ptr, png_bytepp image)
|
png_read_image(png_structp png_ptr, png_bytepp image)
|
||||||
|
2
pngrio.c
2
pngrio.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrio.c - functions for data input
|
/* pngrio.c - functions for data input
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
637
pngrutil.c
637
pngrutil.c
@ -1,6 +1,6 @@
|
|||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -2260,46 +2260,59 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
|
||||||
static const png_byte bitrev[16] =
|
|
||||||
{0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E,
|
|
||||||
0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F};
|
|
||||||
static const png_byte lastbyte_mask_norm[8] =
|
|
||||||
{0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE};
|
|
||||||
static const png_byte lastbyte_mask_swap[8] =
|
|
||||||
{0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F};
|
|
||||||
const png_byte *lastbyte_mask =
|
|
||||||
(png_ptr->transformations & PNG_PACKSWAP) ?
|
|
||||||
lastbyte_mask_swap : lastbyte_mask_norm;
|
|
||||||
#else
|
|
||||||
static const png_byte lastbyte_mask[8] =
|
|
||||||
{0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE};
|
|
||||||
#endif
|
|
||||||
switch (png_ptr->row_info.pixel_depth)
|
switch (png_ptr->row_info.pixel_depth)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
png_bytep sp = png_ptr->row_buf + 1;
|
png_bytep sp = png_ptr->row_buf + 1;
|
||||||
png_bytep dp = row;
|
png_bytep dp = row;
|
||||||
|
int s_inc, s_start, s_end;
|
||||||
|
int m = 0x80;
|
||||||
|
int shift;
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
png_byte pixel_mask;
|
png_uint_32 row_width = png_ptr->width;
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACKSWAP)
|
if (png_ptr->transformations & PNG_PACKSWAP)
|
||||||
mask = (bitrev[mask & 0x0F] << 4) | bitrev[(mask >> 4) & 0x0F];
|
|
||||||
#endif
|
|
||||||
pixel_mask = (png_byte)mask;
|
|
||||||
|
|
||||||
for (i = png_ptr->width; i >= 8; i -= 8)
|
|
||||||
{
|
{
|
||||||
*dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
|
s_start = 0;
|
||||||
sp++;
|
s_end = 7;
|
||||||
dp++;
|
s_inc = 1;
|
||||||
}
|
}
|
||||||
if (i > 0)
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
pixel_mask &= lastbyte_mask[i];
|
s_start = 7;
|
||||||
*dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
|
s_end = 0;
|
||||||
|
s_inc = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
shift = s_start;
|
||||||
|
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
if (m & mask)
|
||||||
|
{
|
||||||
|
int value;
|
||||||
|
|
||||||
|
value = (*sp >> shift) & 0x01;
|
||||||
|
*dp &= (png_byte)((0x7f7f >> (7 - shift)) & 0xff);
|
||||||
|
*dp |= (png_byte)(value << shift);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shift == s_end)
|
||||||
|
{
|
||||||
|
shift = s_start;
|
||||||
|
sp++;
|
||||||
|
dp++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
shift += s_inc;
|
||||||
|
|
||||||
|
if (m == 1)
|
||||||
|
m = 0x80;
|
||||||
|
else
|
||||||
|
m >>= 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2307,40 +2320,51 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
|||||||
{
|
{
|
||||||
png_bytep sp = png_ptr->row_buf + 1;
|
png_bytep sp = png_ptr->row_buf + 1;
|
||||||
png_bytep dp = row;
|
png_bytep dp = row;
|
||||||
png_uint_32 i;
|
int s_start, s_end, s_inc;
|
||||||
png_byte pixel_mask[2];
|
|
||||||
int m = 0x80;
|
int m = 0x80;
|
||||||
int j;
|
int shift;
|
||||||
|
png_uint_32 i;
|
||||||
|
png_uint_32 row_width = png_ptr->width;
|
||||||
|
int value;
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACKSWAP)
|
if (png_ptr->transformations & PNG_PACKSWAP)
|
||||||
mask = bitrev[mask & 0x0F] | (bitrev[(mask >> 4) & 0x0F] << 4);
|
{
|
||||||
|
s_start = 0;
|
||||||
|
s_end = 6;
|
||||||
|
s_inc = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
for (j = 0; j < 2; j++)
|
|
||||||
{
|
{
|
||||||
pixel_mask[j] = 0;
|
s_start = 6;
|
||||||
for (i = 4; i > 0; i--)
|
s_end = 0;
|
||||||
|
s_inc = -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
shift = s_start;
|
||||||
|
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
if (m & mask)
|
||||||
{
|
{
|
||||||
pixel_mask[j] <<= 2;
|
value = (*sp >> shift) & 0x03;
|
||||||
if (m & mask)
|
*dp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff);
|
||||||
pixel_mask[j] |= 0x03;
|
*dp |= (png_byte)(value << shift);
|
||||||
m >>= 1;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
j = 0;
|
if (shift == s_end)
|
||||||
for (i = png_ptr->width; i >= 4; i -= 4)
|
{
|
||||||
{
|
shift = s_start;
|
||||||
if (pixel_mask[j] != 0)
|
sp++;
|
||||||
*dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
|
dp++;
|
||||||
sp++;
|
}
|
||||||
dp++;
|
else
|
||||||
j ^= 1;
|
shift += s_inc;
|
||||||
}
|
if (m == 1)
|
||||||
if (i > 0)
|
m = 0x80;
|
||||||
{
|
else
|
||||||
pixel_mask[j] &= lastbyte_mask[i * 2];
|
m >>= 1;
|
||||||
if (pixel_mask[j] != 0)
|
|
||||||
*dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2348,41 +2372,50 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
|||||||
{
|
{
|
||||||
png_bytep sp = png_ptr->row_buf + 1;
|
png_bytep sp = png_ptr->row_buf + 1;
|
||||||
png_bytep dp = row;
|
png_bytep dp = row;
|
||||||
png_uint_32 i;
|
int s_start, s_end, s_inc;
|
||||||
png_byte pixel_mask[4];
|
|
||||||
int m = 0x80;
|
int m = 0x80;
|
||||||
int j;
|
int shift;
|
||||||
|
png_uint_32 i;
|
||||||
|
png_uint_32 row_width = png_ptr->width;
|
||||||
|
int value;
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (png_ptr->transformations & PNG_PACKSWAP)
|
if (png_ptr->transformations & PNG_PACKSWAP)
|
||||||
mask = ((mask & 0x55) << 1) | ((mask & 0xAA) >> 1);
|
{
|
||||||
|
s_start = 0;
|
||||||
|
s_end = 4;
|
||||||
|
s_inc = 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
for (j = 0; j < 4; j++)
|
|
||||||
{
|
{
|
||||||
pixel_mask[j] = 0;
|
s_start = 4;
|
||||||
for (i = 2; i > 0; i--)
|
s_end = 0;
|
||||||
|
s_inc = -4;
|
||||||
|
}
|
||||||
|
shift = s_start;
|
||||||
|
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
|
{
|
||||||
|
if (m & mask)
|
||||||
{
|
{
|
||||||
pixel_mask[j] <<= 4;
|
value = (*sp >> shift) & 0xf;
|
||||||
if (m & mask)
|
*dp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff);
|
||||||
pixel_mask[j] |= 0x0F;
|
*dp |= (png_byte)(value << shift);
|
||||||
m >>= 1;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
j = 0;
|
if (shift == s_end)
|
||||||
for (i = png_ptr->width; i >= 2; i -= 2)
|
{
|
||||||
{
|
shift = s_start;
|
||||||
if (pixel_mask[j] != 0)
|
sp++;
|
||||||
*dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
|
dp++;
|
||||||
sp++;
|
}
|
||||||
dp++;
|
else
|
||||||
j += 1;
|
shift += s_inc;
|
||||||
j &= 3;
|
if (m == 1)
|
||||||
}
|
m = 0x80;
|
||||||
if (i > 0)
|
else
|
||||||
{
|
m >>= 1;
|
||||||
pixel_mask[j] &= lastbyte_mask[4];
|
|
||||||
if (pixel_mask[j] != 0)
|
|
||||||
*dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2392,123 +2425,24 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
|||||||
png_bytep dp = row;
|
png_bytep dp = row;
|
||||||
png_size_t pixel_bytes = (png_ptr->row_info.pixel_depth >> 3);
|
png_size_t pixel_bytes = (png_ptr->row_info.pixel_depth >> 3);
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
int m = 0x80;
|
png_uint_32 row_width = png_ptr->width;
|
||||||
|
png_byte m = 0x80;
|
||||||
|
|
||||||
switch (pixel_bytes)
|
|
||||||
|
for (i = 0; i < row_width; i++)
|
||||||
{
|
{
|
||||||
case 1:
|
if (m & mask)
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
{
|
||||||
{
|
png_memcpy(dp, sp, pixel_bytes);
|
||||||
if (m & mask)
|
}
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
sp += pixel_bytes;
|
||||||
}
|
dp += pixel_bytes;
|
||||||
sp += 1;
|
|
||||||
dp += 1;
|
if (m == 1)
|
||||||
if ((m >>= 1) == 0)
|
m = 0x80;
|
||||||
m = 0x80;
|
else
|
||||||
}
|
m >>= 1;
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (m & mask)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(sp + 1);
|
|
||||||
}
|
|
||||||
sp += 2;
|
|
||||||
dp += 2;
|
|
||||||
if ((m >>= 1) == 0)
|
|
||||||
m = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (m & mask)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(sp + 2);
|
|
||||||
}
|
|
||||||
sp += 3;
|
|
||||||
dp += 3;
|
|
||||||
if ((m >>= 1) == 0)
|
|
||||||
m = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (m & mask)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(sp + 3);
|
|
||||||
}
|
|
||||||
sp += 4;
|
|
||||||
dp += 4;
|
|
||||||
if ((m >>= 1) == 0)
|
|
||||||
m = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (m & mask)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(sp + 3);
|
|
||||||
*(dp + 4) = *(sp + 4);
|
|
||||||
*(dp + 5) = *(sp + 5);
|
|
||||||
}
|
|
||||||
sp += 6;
|
|
||||||
dp += 6;
|
|
||||||
if ((m >>= 1) == 0)
|
|
||||||
m = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
for (i = png_ptr->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (m & mask)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(sp + 3);
|
|
||||||
*(dp + 4) = *(sp + 4);
|
|
||||||
*(dp + 5) = *(sp + 5);
|
|
||||||
*(dp + 6) = *(sp + 6);
|
|
||||||
*(dp + 7) = *(sp + 7);
|
|
||||||
}
|
|
||||||
sp += 8;
|
|
||||||
dp += 8;
|
|
||||||
if ((m >>= 1) == 0)
|
|
||||||
m = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/*for (i = png_ptr->width; i > 0; i--)
|
|
||||||
*{
|
|
||||||
* if (m & mask)
|
|
||||||
* {
|
|
||||||
* png_size_t j;
|
|
||||||
* for (j = 0; j < pixel_bytes; j++)
|
|
||||||
* {
|
|
||||||
* *(dp + j) = *(sp + j);
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
* sp += pixel_bytes;
|
|
||||||
* dp += pixel_bytes;
|
|
||||||
* if ((m >>= 1) == 0)
|
|
||||||
* m = 0x80;
|
|
||||||
*}
|
|
||||||
*/break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2537,101 +2471,122 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
png_debug(1,"in png_do_read_interlace (stock C version)\n");
|
png_debug(1,"in png_do_read_interlace (stock C version)\n");
|
||||||
if (row != NULL && row_info != NULL &&
|
if (row != NULL && row_info != NULL)
|
||||||
pass < 6)
|
|
||||||
{
|
{
|
||||||
png_uint_32 final_width = row_info->width * png_pass_inc[pass];
|
png_uint_32 final_width;
|
||||||
|
|
||||||
|
final_width = row_info->width * png_pass_inc[pass];
|
||||||
|
|
||||||
switch (row_info->pixel_depth)
|
switch (row_info->pixel_depth)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
static const png_byte pixeltable1[24] =
|
|
||||||
{0x00, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0xFF,
|
|
||||||
0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
|
|
||||||
0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF};
|
|
||||||
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 3);
|
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 3);
|
||||||
png_bytep dp = row + (png_size_t)((final_width - 1) >> 3);
|
png_bytep dp = row + (png_size_t)((final_width - 1) >> 3);
|
||||||
int nbits = 8 / png_pass_inc[pass];
|
int sshift, dshift;
|
||||||
int sshift = 7 - (int)((row_info->width + 7) & 0x07);
|
int s_start, s_end, s_inc;
|
||||||
int s_inc = nbits;
|
int jstop = png_pass_inc[pass];
|
||||||
png_byte smask = (1 << nbits) - 1;
|
png_byte v;
|
||||||
const png_byte *pix = pixeltable1 + (2 * nbits);
|
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
|
int j;
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (transformations & PNG_PACKSWAP)
|
if (transformations & PNG_PACKSWAP)
|
||||||
{
|
{
|
||||||
sshift = 7 - sshift;
|
sshift = (int)((row_info->width + 7) & 0x07);
|
||||||
s_inc = -s_inc;
|
dshift = (int)((final_width + 7) & 0x07);
|
||||||
|
s_start = 7;
|
||||||
|
s_end = 0;
|
||||||
|
s_inc = -1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
sshift &= (0x10 - nbits);
|
|
||||||
|
|
||||||
for (i = (row_info->width + nbits - 1) / nbits;
|
|
||||||
i > 0; i--)
|
|
||||||
{
|
{
|
||||||
*dp-- = pix[(*sp >> sshift) & smask];
|
sshift = 7 - (int)((row_info->width + 7) & 0x07);
|
||||||
|
dshift = 7 - (int)((final_width + 7) & 0x07);
|
||||||
|
s_start = 0;
|
||||||
|
s_end = 7;
|
||||||
|
s_inc = 1;
|
||||||
|
}
|
||||||
|
|
||||||
sshift += s_inc;
|
for (i = 0; i < row_info->width; i++)
|
||||||
if (sshift >= 8)
|
{
|
||||||
|
v = (png_byte)((*sp >> sshift) & 0x01);
|
||||||
|
for (j = 0; j < jstop; j++)
|
||||||
{
|
{
|
||||||
sshift -= 8;
|
*dp &= (png_byte)((0x7f7f >> (7 - dshift)) & 0xff);
|
||||||
sp--;
|
*dp |= (png_byte)(v << dshift);
|
||||||
}
|
if (dshift == s_end)
|
||||||
else if (sshift < 0)
|
{
|
||||||
{
|
dshift = s_start;
|
||||||
sshift += 8;
|
dp--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dshift += s_inc;
|
||||||
|
}
|
||||||
|
if (sshift == s_end)
|
||||||
|
{
|
||||||
|
sshift = s_start;
|
||||||
sp--;
|
sp--;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
sshift += s_inc;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
static const png_byte pixeltable2[20] =
|
png_bytep sp = row + (png_uint_32)((row_info->width - 1) >> 2);
|
||||||
{0x00, 0x55, 0xAA, 0xFF,
|
png_bytep dp = row + (png_uint_32)((final_width - 1) >> 2);
|
||||||
0x00, 0x05, 0x0A, 0x0F, 0x50, 0x55, 0x5A, 0x5F,
|
int sshift, dshift;
|
||||||
0xA0, 0xA5, 0xAA, 0xAF, 0xF0, 0xF5, 0xFA, 0xFF};
|
int s_start, s_end, s_inc;
|
||||||
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 2);
|
int jstop = png_pass_inc[pass];
|
||||||
png_bytep dp = row + (png_size_t)((final_width - 1) >> 2);
|
|
||||||
int is2 = (png_pass_inc[pass] == 2);
|
|
||||||
int is8 = (png_pass_inc[pass] == 8);
|
|
||||||
int sshift = (int)((3 - ((row_info->width + 3) & 0x03)) << 1);
|
|
||||||
int s_inc = 2 << is2;
|
|
||||||
png_byte smask = (4 << (2 * is2)) - 1;
|
|
||||||
const png_byte *pix = pixeltable2 + (4 * is2);
|
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
png_byte v;
|
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (transformations & PNG_PACKSWAP)
|
if (transformations & PNG_PACKSWAP)
|
||||||
{
|
{
|
||||||
sshift = 6 - sshift;
|
sshift = (int)(((row_info->width + 3) & 0x03) << 1);
|
||||||
s_inc = -s_inc;
|
dshift = (int)(((final_width + 3) & 0x03) << 1);
|
||||||
|
s_start = 6;
|
||||||
|
s_end = 0;
|
||||||
|
s_inc = -2;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
sshift &= (0x0E - (2 * is2));
|
|
||||||
|
|
||||||
for (i = (row_info->width + is2) >> is2;
|
|
||||||
i > 0; i--)
|
|
||||||
{
|
{
|
||||||
v = pix[(*sp >> sshift) & smask];
|
sshift = (int)((3 - ((row_info->width + 3) & 0x03)) << 1);
|
||||||
*dp-- = v;
|
dshift = (int)((3 - ((final_width + 3) & 0x03)) << 1);
|
||||||
if (is8)
|
s_start = 0;
|
||||||
*dp-- = v;
|
s_end = 6;
|
||||||
|
s_inc = 2;
|
||||||
|
}
|
||||||
|
|
||||||
sshift += s_inc;
|
for (i = 0; i < row_info->width; i++)
|
||||||
if (sshift >= 8)
|
{
|
||||||
|
png_byte v;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
v = (png_byte)((*sp >> sshift) & 0x03);
|
||||||
|
for (j = 0; j < jstop; j++)
|
||||||
{
|
{
|
||||||
sshift -= 8;
|
*dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff);
|
||||||
sp--;
|
*dp |= (png_byte)(v << dshift);
|
||||||
}
|
if (dshift == s_end)
|
||||||
else if (sshift < 0)
|
{
|
||||||
{
|
dshift = s_start;
|
||||||
sshift += 8;
|
dp--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dshift += s_inc;
|
||||||
|
}
|
||||||
|
if (sshift == s_end)
|
||||||
|
{
|
||||||
|
sshift = s_start;
|
||||||
sp--;
|
sp--;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
sshift += s_inc;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2639,39 +2594,54 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
{
|
{
|
||||||
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 1);
|
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 1);
|
||||||
png_bytep dp = row + (png_size_t)((final_width - 1) >> 1);
|
png_bytep dp = row + (png_size_t)((final_width - 1) >> 1);
|
||||||
int jinit = png_pass_inc[pass] >> 1;
|
int sshift, dshift;
|
||||||
int sshift = (int)((1 - ((row_info->width + 1) & 0x01)) << 2);
|
int s_start, s_end, s_inc;
|
||||||
int s_inc = 4;
|
|
||||||
png_uint_32 i;
|
png_uint_32 i;
|
||||||
png_byte v;
|
int jstop = png_pass_inc[pass];
|
||||||
int j;
|
|
||||||
|
|
||||||
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
|
||||||
if (transformations & PNG_PACKSWAP)
|
if (transformations & PNG_PACKSWAP)
|
||||||
{
|
{
|
||||||
sshift = 4 - sshift;
|
sshift = (int)(((row_info->width + 1) & 0x01) << 2);
|
||||||
s_inc = -s_inc;
|
dshift = (int)(((final_width + 1) & 0x01) << 2);
|
||||||
|
s_start = 4;
|
||||||
|
s_end = 0;
|
||||||
|
s_inc = -4;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
{
|
||||||
v = (*sp >> sshift) & 0x0F;
|
sshift = (int)((1 - ((row_info->width + 1) & 0x01)) << 2);
|
||||||
v |= v << 4;
|
dshift = (int)((1 - ((final_width + 1) & 0x01)) << 2);
|
||||||
|
s_start = 0;
|
||||||
|
s_end = 4;
|
||||||
|
s_inc = 4;
|
||||||
|
}
|
||||||
|
|
||||||
for (j = jinit; j > 0; j--)
|
for (i = 0; i < row_info->width; i++)
|
||||||
*dp-- = v;
|
{
|
||||||
|
png_byte v = (png_byte)((*sp >> sshift) & 0xf);
|
||||||
|
int j;
|
||||||
|
|
||||||
sshift += s_inc;
|
for (j = 0; j < jstop; j++)
|
||||||
if (sshift >= 8)
|
|
||||||
{
|
{
|
||||||
sshift -= 8;
|
*dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff);
|
||||||
sp--;
|
*dp |= (png_byte)(v << dshift);
|
||||||
}
|
if (dshift == s_end)
|
||||||
else if (sshift < 0)
|
{
|
||||||
{
|
dshift = s_start;
|
||||||
sshift += 8;
|
dp--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dshift += s_inc;
|
||||||
|
}
|
||||||
|
if (sshift == s_end)
|
||||||
|
{
|
||||||
|
sshift = s_start;
|
||||||
sp--;
|
sp--;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
sshift += s_inc;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2679,112 +2649,23 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
{
|
{
|
||||||
png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
|
png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
|
||||||
png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes;
|
png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes;
|
||||||
png_bytep dp = row + (png_size_t)(final_width - 2) * pixel_bytes;
|
png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes;
|
||||||
int jinit = png_pass_inc[pass] >> 1;
|
|
||||||
png_uint_32 i;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
switch (pixel_bytes)
|
int jstop = png_pass_inc[pass];
|
||||||
|
png_uint_32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < row_info->width; i++)
|
||||||
{
|
{
|
||||||
case 1:
|
png_byte v[8];
|
||||||
for (i = row_info->width; i > 0; i--)
|
int j;
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
png_memcpy(v, sp, pixel_bytes);
|
||||||
{
|
for (j = 0; j < jstop; j++)
|
||||||
*(dp + 0) = *(dp + 1) = *(sp + 0);
|
{
|
||||||
dp -= 2;
|
png_memcpy(dp, v, pixel_bytes);
|
||||||
}
|
dp -= pixel_bytes;
|
||||||
sp -= 1;
|
}
|
||||||
}
|
sp -= pixel_bytes;
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(dp + 2) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(dp + 3) = *(sp + 1);
|
|
||||||
dp -= 4;
|
|
||||||
}
|
|
||||||
sp -= 2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(dp + 3) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(dp + 4) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(dp + 5) = *(sp + 2);
|
|
||||||
dp -= 6;
|
|
||||||
}
|
|
||||||
sp -= 3;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(dp + 4) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(dp + 5) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(dp + 6) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(dp + 7) = *(sp + 3);
|
|
||||||
dp -= 8;
|
|
||||||
}
|
|
||||||
sp -= 4;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(dp + 6) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(dp + 7) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(dp + 8) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(dp + 9) = *(sp + 3);
|
|
||||||
*(dp + 4) = *(dp + 10) = *(sp + 4);
|
|
||||||
*(dp + 5) = *(dp + 11) = *(sp + 5);
|
|
||||||
dp -= 12;
|
|
||||||
}
|
|
||||||
sp -= 6;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
for (i = row_info->width; i > 0; i--)
|
|
||||||
{
|
|
||||||
for (j = jinit; j > 0; j--)
|
|
||||||
{
|
|
||||||
*(dp + 0) = *(dp + 8) = *(sp + 0);
|
|
||||||
*(dp + 1) = *(dp + 9) = *(sp + 1);
|
|
||||||
*(dp + 2) = *(dp + 10) = *(sp + 2);
|
|
||||||
*(dp + 3) = *(dp + 11) = *(sp + 3);
|
|
||||||
*(dp + 4) = *(dp + 12) = *(sp + 4);
|
|
||||||
*(dp + 5) = *(dp + 13) = *(sp + 5);
|
|
||||||
*(dp + 6) = *(dp + 14) = *(sp + 6);
|
|
||||||
*(dp + 7) = *(dp + 15) = *(sp + 7);
|
|
||||||
dp -= 16;
|
|
||||||
}
|
|
||||||
sp -= 8;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/*for (i = row_info->width; i > 0; i--)
|
|
||||||
*{
|
|
||||||
* for (j = jinit; j > 0; j--)
|
|
||||||
* {
|
|
||||||
* png_size_t k;
|
|
||||||
* for (k = 0; k < pixel_bytes; k++)
|
|
||||||
* {
|
|
||||||
* *(dp + pixel_bytes + k) = *(dp + k) = *(sp + k);
|
|
||||||
* }
|
|
||||||
* dp -= (2 * pixel_bytes);
|
|
||||||
* }
|
|
||||||
* sp -= pixel_bytes;
|
|
||||||
*}
|
|
||||||
*/break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
2
pngset.c
2
pngset.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngset.c - storage of image information into info struct
|
/* pngset.c - storage of image information into info struct
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngtest.c - a simple test program to test libpng
|
/* pngtest.c - a simple test program to test libpng
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -1551,4 +1551,4 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef version_1_2_8rc2 your_png_h_is_not_version_1_2_8rc2;
|
typedef version_1_2_8rc3 your_png_h_is_not_version_1_2_8rc3;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
*
|
*
|
||||||
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* Copyright (c) 1998, Intel Corporation
|
* Copyright (c) 1998, Intel Corporation
|
||||||
|
2
pngwio.c
2
pngwio.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwio.c - functions for data output
|
/* pngwio.c - functions for data output
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwrite.c - general routines to write a PNG file
|
/* pngwrite.c - general routines to write a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.8rc2 - November 26, 2004
|
* libpng 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwutil.c - utilities to write a PNG file
|
/* pngwutil.c - utilities to write a PNG file
|
||||||
*
|
*
|
||||||
* libpng version 1.2.8rc2 - November 26, 2004
|
* libpng version 1.2.8rc3 - November 28, 2004
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
# Modeled after libxml-config.
|
# Modeled after libxml-config.
|
||||||
|
|
||||||
version=1.2.8rc2
|
version=1.2.8rc3
|
||||||
prefix=""
|
prefix=""
|
||||||
libdir=""
|
libdir=""
|
||||||
libs=""
|
libs=""
|
||||||
|
@ -6,6 +6,6 @@ includedir=${exec_prefix}/include
|
|||||||
|
|
||||||
Name: libpng12
|
Name: libpng12
|
||||||
Description: Loads and saves PNG files
|
Description: Loads and saves PNG files
|
||||||
Version: 1.2.8rc2
|
Version: 1.2.8rc3
|
||||||
Libs: -L${libdir} -lpng12 -lz -lm
|
Libs: -L${libdir} -lpng12 -lz -lm
|
||||||
Cflags: -I${includedir}/libpng12
|
Cflags: -I${includedir}/libpng12
|
||||||
|
@ -33,7 +33,7 @@ RANLIB=echo
|
|||||||
|
|
||||||
LIBNAME=libpng12
|
LIBNAME=libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -33,7 +33,7 @@ RANLIB=echo
|
|||||||
|
|
||||||
LIBNAME=libpng12
|
LIBNAME=libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -18,7 +18,7 @@ RM = rm -f
|
|||||||
|
|
||||||
LIBNAME=libpng12
|
LIBNAME=libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
prefix=/usr/local
|
prefix=/usr/local
|
||||||
|
@ -12,7 +12,7 @@ ZLIBLIB=/usr/local/lib
|
|||||||
ZLIBINC=/usr/local/include
|
ZLIBINC=/usr/local/include
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
ALIGN=
|
ALIGN=
|
||||||
|
@ -79,7 +79,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
|
|||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
CYGDLL = 12
|
CYGDLL = 12
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
SHAREDLIB=cygpng$(CYGDLL).dll
|
SHAREDLIB=cygpng$(CYGDLL).dll
|
||||||
|
@ -23,7 +23,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng12 -lz
|
|||||||
RANLIB=ranlib
|
RANLIB=ranlib
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ ZLIBLIB=../zlib
|
|||||||
ZLIBINC=../zlib
|
ZLIBINC=../zlib
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
249
scripts/makefile.elf
Normal file
249
scripts/makefile.elf
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
# makefile for libpng.a and libpng12.so on Linux ELF with gcc
|
||||||
|
# Copyright (C) 1998, 1999, 2002 Greg Roelofs and Glenn Randers-Pehrson
|
||||||
|
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||||
|
# For conditions of distribution and use, see copyright notice in png.h
|
||||||
|
|
||||||
|
LIBNAME = libpng12
|
||||||
|
PNGMAJ = 0
|
||||||
|
PNGMIN = 1.2.8rc3
|
||||||
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
|
CC=gcc
|
||||||
|
|
||||||
|
# where "make install" puts libpng12.a, libpng12.so*,
|
||||||
|
# libpng12/png.h and libpng12/pngconf.h
|
||||||
|
# Prefix must be a full pathname.
|
||||||
|
prefix=/usr/local
|
||||||
|
|
||||||
|
# Where the zlib library and include files are located.
|
||||||
|
#ZLIBLIB=/usr/local/lib
|
||||||
|
#ZLIBINC=/usr/local/include
|
||||||
|
ZLIBLIB=../zlib
|
||||||
|
ZLIBINC=../zlib
|
||||||
|
|
||||||
|
ALIGN=
|
||||||
|
# for i386:
|
||||||
|
#ALIGN=-malign-loops=2 -malign-functions=2
|
||||||
|
|
||||||
|
WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||||
|
-Wmissing-declarations -Wtraditional -Wcast-align \
|
||||||
|
-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
|
||||||
|
|
||||||
|
# for pgcc version 2.95.1, -O3 is buggy; don't use it.
|
||||||
|
|
||||||
|
CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
|
||||||
|
$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
|
||||||
|
|
||||||
|
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng12 -lz -lm
|
||||||
|
LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm
|
||||||
|
|
||||||
|
RANLIB=ranlib
|
||||||
|
#RANLIB=echo
|
||||||
|
|
||||||
|
INCPATH=$(prefix)/include
|
||||||
|
LIBPATH=$(prefix)/lib
|
||||||
|
MANPATH=$(prefix)/man
|
||||||
|
BINPATH=$(prefix)/bin
|
||||||
|
|
||||||
|
# override DESTDIR= on the make install command line to easily support
|
||||||
|
# installing into a temporary location. Example:
|
||||||
|
#
|
||||||
|
# make install DESTDIR=/tmp/build/libpng
|
||||||
|
#
|
||||||
|
# If you're going to install into a temporary location
|
||||||
|
# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
|
||||||
|
# you execute make install.
|
||||||
|
DESTDIR=
|
||||||
|
|
||||||
|
DB=$(DESTDIR)$(BINPATH)
|
||||||
|
DI=$(DESTDIR)$(INCPATH)
|
||||||
|
DL=$(DESTDIR)$(LIBPATH)
|
||||||
|
DM=$(DESTDIR)$(MANPATH)
|
||||||
|
|
||||||
|
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||||
|
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||||
|
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||||
|
|
||||||
|
OBJSDLL = $(OBJS:.o=.pic.o)
|
||||||
|
|
||||||
|
.SUFFIXES: .c .o .pic.o
|
||||||
|
|
||||||
|
.c.pic.o:
|
||||||
|
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
|
||||||
|
|
||||||
|
all: libpng.a $(LIBNAME).so pngtest pngtest-static libpng.pc libpng-config
|
||||||
|
|
||||||
|
libpng.a: $(OBJS)
|
||||||
|
ar rc $@ $(OBJS)
|
||||||
|
$(RANLIB) $@
|
||||||
|
|
||||||
|
libpng.pc:
|
||||||
|
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||||
|
|
||||||
|
libpng.syms: png.h pngconf.h
|
||||||
|
$(CC) $(CFLAGS) -E -DPNG_BUILDSYMS png.h |\
|
||||||
|
awk -F '[\t [\]();]' 'BEGIN{print "{global:"}\
|
||||||
|
{ for (i=1;i+2<=NF;++i)\
|
||||||
|
if ($$(i)=="PNG_FUNCTION_EXPORT" && $$(i+2)=="END")\
|
||||||
|
print $$(i+1) ";";\
|
||||||
|
for (i=1;i+1<=NF;++i)\
|
||||||
|
if ($$(i)=="PNG_DATA_EXPORT")\
|
||||||
|
print $$(i+1) ";";}\
|
||||||
|
END{print "local: *; };"}' >$@.new
|
||||||
|
rm -f $@
|
||||||
|
mv $@.new $@
|
||||||
|
|
||||||
|
libpng-config:
|
||||||
|
( cat scripts/libpng-config-head.in; \
|
||||||
|
echo prefix=\"$(prefix)\"; \
|
||||||
|
echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \
|
||||||
|
echo L_opts=\"-L$(LIBPATH)\"; \
|
||||||
|
echo R_opts=\"-Wl,-rpath,$(LIBPATH)\"; \
|
||||||
|
echo libs=\"-lpng12 -lz -lm\"; \
|
||||||
|
cat scripts/libpng-config-body.in ) > libpng-config
|
||||||
|
chmod +x libpng-config
|
||||||
|
|
||||||
|
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||||
|
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||||
|
|
||||||
|
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||||
|
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||||
|
|
||||||
|
$(LIBNAME).so.$(PNGVER): $(OBJSDLL) libpng.syms
|
||||||
|
$(CC) -shared -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) \
|
||||||
|
-Wl,-version-script,libpng.syms \
|
||||||
|
-o $(LIBNAME).so.$(PNGVER) \
|
||||||
|
$(OBJSDLL)
|
||||||
|
|
||||||
|
libpng.so.3.$(PNGMIN): $(OBJSDLL) libpng.syms
|
||||||
|
$(CC) -shared -Wl,-soname,libpng.so.3 \
|
||||||
|
-Wl,-version-script,libpng.syms \
|
||||||
|
-o libpng.so.3.$(PNGMIN) \
|
||||||
|
$(OBJSDLL)
|
||||||
|
|
||||||
|
pngtest: pngtest.o $(LIBNAME).so
|
||||||
|
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||||
|
|
||||||
|
pngtest-static: pngtest.o libpng.a
|
||||||
|
$(CC) -o pngtest-static $(CFLAGS) pngtest.o $(LDFLAGS_A)
|
||||||
|
|
||||||
|
test: pngtest pngtest-static
|
||||||
|
@echo ""
|
||||||
|
@echo " Running pngtest dynamically linked with $(LIBNAME).so:"
|
||||||
|
@echo ""
|
||||||
|
./pngtest
|
||||||
|
@echo ""
|
||||||
|
@echo " Running pngtest statically linked with libpng.a:"
|
||||||
|
@echo ""
|
||||||
|
./pngtest-static
|
||||||
|
|
||||||
|
install-headers: png.h pngconf.h
|
||||||
|
-@if [ ! -d $(DI) ]; then mkdir $(DI); fi
|
||||||
|
-@if [ ! -d $(DI)/$(LIBNAME) ]; then mkdir $(DI)/$(LIBNAME); fi
|
||||||
|
cp png.h pngconf.h $(DI)/$(LIBNAME)
|
||||||
|
chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h
|
||||||
|
-@/bin/rm -f $(DI)/png.h $(DI)/pngconf.h
|
||||||
|
-@/bin/rm -f $(DI)/libpng
|
||||||
|
(cd $(DI); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .)
|
||||||
|
|
||||||
|
install-static: install-headers libpng.a
|
||||||
|
-@if [ ! -d $(DL) ]; then mkdir $(DL); fi
|
||||||
|
cp libpng.a $(DL)/$(LIBNAME).a
|
||||||
|
chmod 644 $(DL)/$(LIBNAME).a
|
||||||
|
-@/bin/rm -f $(DL)/libpng.a
|
||||||
|
(cd $(DL); ln -sf $(LIBNAME).a libpng.a)
|
||||||
|
|
||||||
|
install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc \
|
||||||
|
libpng.so.3.$(PNGMIN)
|
||||||
|
-@if [ ! -d $(DL) ]; then mkdir $(DL); fi
|
||||||
|
-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGVER)* $(DL)/$(LIBNAME).so
|
||||||
|
-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)
|
||||||
|
-@/bin/rm -f $(DL)/libpng.so
|
||||||
|
-@/bin/rm -f $(DL)/libpng.so.3
|
||||||
|
-@/bin/rm -f $(DL)/libpng.so.3.$(PNGMIN)*
|
||||||
|
cp $(LIBNAME).so.$(PNGVER) $(DL)
|
||||||
|
cp libpng.so.3.$(PNGMIN) $(DL)
|
||||||
|
chmod 755 $(DL)/$(LIBNAME).so.$(PNGVER)
|
||||||
|
chmod 755 $(DL)/libpng.so.3.$(PNGMIN)
|
||||||
|
(cd $(DL); \
|
||||||
|
ln -sf libpng.so.3.$(PNGMIN) libpng.so.3; \
|
||||||
|
ln -sf libpng.so.3 libpng.so; \
|
||||||
|
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||||
|
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||||
|
-@if [ ! -d $(DL)/pkgconfig ]; then mkdir $(DL)/pkgconfig; fi
|
||||||
|
-@/bin/rm -f $(DL)/pkgconfig/$(LIBNAME).pc
|
||||||
|
-@/bin/rm -f $(DL)/pkgconfig/libpng.pc
|
||||||
|
cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc
|
||||||
|
chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc
|
||||||
|
(cd $(DL)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
|
||||||
|
|
||||||
|
install-man: libpng.3 libpngpf.3 png.5
|
||||||
|
-@if [ ! -d $(DM) ]; then mkdir $(DM); fi
|
||||||
|
-@if [ ! -d $(DM)/man3 ]; then mkdir $(DM)/man3; fi
|
||||||
|
-@/bin/rm -f $(DM)/man3/libpng.3
|
||||||
|
-@/bin/rm -f $(DM)/man3/libpngpf.3
|
||||||
|
cp libpng.3 $(DM)/man3
|
||||||
|
cp libpngpf.3 $(DM)/man3
|
||||||
|
-@if [ ! -d $(DM)/man5 ]; then mkdir $(DM)/man5; fi
|
||||||
|
-@/bin/rm -f $(DM)/man5/png.5
|
||||||
|
cp png.5 $(DM)/man5
|
||||||
|
|
||||||
|
install-config: libpng-config
|
||||||
|
-@if [ ! -d $(DB) ]; then mkdir $(DB); fi
|
||||||
|
-@/bin/rm -f $(DB)/libpng-config
|
||||||
|
-@/bin/rm -f $(DB)/$(LIBNAME)-config
|
||||||
|
cp libpng-config $(DB)/$(LIBNAME)-config
|
||||||
|
chmod 755 $(DB)/$(LIBNAME)-config
|
||||||
|
(cd $(DB); ln -sf $(LIBNAME)-config libpng-config)
|
||||||
|
|
||||||
|
install: install-static install-shared install-man install-config
|
||||||
|
|
||||||
|
# If you installed in $(DESTDIR), test-installed won't work until you
|
||||||
|
# move the library to its final location. Use test-dd to test it
|
||||||
|
# before then.
|
||||||
|
|
||||||
|
test-dd:
|
||||||
|
echo
|
||||||
|
echo Testing installed dynamic shared library in $(DL).
|
||||||
|
$(CC) -I$(DI) -I$(ZLIBINC) \
|
||||||
|
`$(BINPATH)/libpng12-config --cflags` pngtest.c \
|
||||||
|
-L$(DL) -L$(ZLIBLIB) -W1, -rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \
|
||||||
|
-o pngtestd `$(BINPATH)/libpng12-config --ldflags`
|
||||||
|
./pngtestd pngtest.png
|
||||||
|
|
||||||
|
test-installed:
|
||||||
|
$(CC) -I$(ZLIBINC) \
|
||||||
|
`$(BINPATH)/libpng12-config --cflags` pngtest.c \
|
||||||
|
-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) \
|
||||||
|
-o pngtesti `$(BINPATH)/libpng12-config --ldflags`
|
||||||
|
./pngtesti pngtest.png
|
||||||
|
|
||||||
|
clean:
|
||||||
|
/bin/rm -f *.o libpng.a libpng.syms pngtest pngout.png libpng-config \
|
||||||
|
$(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest-static pngtesti \
|
||||||
|
libpng.so.3.$(PNGMIN) \
|
||||||
|
libpng.pc
|
||||||
|
|
||||||
|
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||||
|
writelock:
|
||||||
|
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||||
|
|
||||||
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
|
|
||||||
|
png.o png.pic.o: png.h pngconf.h
|
||||||
|
pngerror.o pngerror.pic.o: png.h pngconf.h
|
||||||
|
pngrio.o pngrio.pic.o: png.h pngconf.h
|
||||||
|
pngwio.o pngwio.pic.o: png.h pngconf.h
|
||||||
|
pngmem.o pngmem.pic.o: png.h pngconf.h
|
||||||
|
pngset.o pngset.pic.o: png.h pngconf.h
|
||||||
|
pngget.o pngget.pic.o: png.h pngconf.h
|
||||||
|
pngread.o pngread.pic.o: png.h pngconf.h
|
||||||
|
pngrtran.o pngrtran.pic.o: png.h pngconf.h
|
||||||
|
pngrutil.o pngrutil.pic.o: png.h pngconf.h
|
||||||
|
pngtrans.o pngtrans.pic.o: png.h pngconf.h
|
||||||
|
pngwrite.o pngwrite.pic.o: png.h pngconf.h
|
||||||
|
pngwtran.o pngwtran.pic.o: png.h pngconf.h
|
||||||
|
pngwutil.o pngwutil.pic.o: png.h pngconf.h
|
||||||
|
pngpread.o pngpread.pic.o: png.h pngconf.h
|
||||||
|
|
||||||
|
pngtest.o: png.h pngconf.h
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
CC=gcc
|
CC=gcc
|
||||||
|
@ -27,7 +27,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
|
|||||||
RANLIB=ranlib
|
RANLIB=ranlib
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ RANLIB=ranlib
|
|||||||
#RANLIB=echo
|
#RANLIB=echo
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
|
|||||||
RANLIB=ranlib
|
RANLIB=ranlib
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
CC=gcc
|
CC=gcc
|
||||||
|
@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng12
|
|||||||
|
|
||||||
LIB= png12
|
LIB= png12
|
||||||
SHLIB_MAJOR= 0
|
SHLIB_MAJOR= 0
|
||||||
SHLIB_MINOR= 1.2.8rc2
|
SHLIB_MINOR= 1.2.8rc3
|
||||||
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng
|
|||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SHLIB_MAJOR= 3
|
SHLIB_MAJOR= 3
|
||||||
SHLIB_MINOR= 1.2.8rc2
|
SHLIB_MINOR= 1.2.8rc3
|
||||||
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
@ -7,7 +7,7 @@ LIBDIR= ${PREFIX}/lib
|
|||||||
MANDIR= ${PREFIX}/man/cat
|
MANDIR= ${PREFIX}/man/cat
|
||||||
|
|
||||||
SHLIB_MAJOR= 0
|
SHLIB_MAJOR= 0
|
||||||
SHLIB_MINOR= 1.2.8rc2
|
SHLIB_MINOR= 1.2.8rc3
|
||||||
|
|
||||||
LIB= png
|
LIB= png
|
||||||
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
|
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
|
||||||
|
@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng12 -lz -lm
|
|||||||
RANLIB=echo
|
RANLIB=echo
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ ZLIBINC=../zlib
|
|||||||
|
|
||||||
LIBNAME=libpng12
|
LIBNAME=libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
CC=gcc
|
CC=gcc
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
LIBNAME=libpng12
|
LIBNAME=libpng12
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
# Where make install puts libpng.a, libpng12.so, and libpng12/png.h
|
# Where make install puts libpng.a, libpng12.so, and libpng12/png.h
|
||||||
|
@ -34,7 +34,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng12 -lz -lm
|
|||||||
RANLIB=echo
|
RANLIB=echo
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng12 -lz -lm
|
|||||||
RANLIB=echo
|
RANLIB=echo
|
||||||
|
|
||||||
PNGMAJ = 0
|
PNGMAJ = 0
|
||||||
PNGMIN = 1.2.8rc2
|
PNGMIN = 1.2.8rc3
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
LIBNAME = libpng12
|
LIBNAME = libpng12
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
; PNG.LIB module definition file for OS/2
|
; PNG.LIB module definition file for OS/2
|
||||||
;----------------------------------------
|
;----------------------------------------
|
||||||
|
|
||||||
; Version 1.2.8rc2
|
; Version 1.2.8rc3
|
||||||
|
|
||||||
LIBRARY PNG
|
LIBRARY PNG
|
||||||
DESCRIPTION "PNG image compression library for OS/2"
|
DESCRIPTION "PNG image compression library for OS/2"
|
||||||
|
@ -6,7 +6,7 @@ LIBRARY
|
|||||||
DESCRIPTION "PNG image compression library for Windows"
|
DESCRIPTION "PNG image compression library for Windows"
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
;Version 1.2.8rc2
|
;Version 1.2.8rc3
|
||||||
png_build_grayscale_palette @1
|
png_build_grayscale_palette @1
|
||||||
png_check_sig @2
|
png_check_sig @2
|
||||||
png_chunk_error @3
|
png_chunk_error @3
|
||||||
|
Reference in New Issue
Block a user