Compare commits

...

5 Commits

Author SHA1 Message Date
Glenn Randers-Pehrson
8f8fb6ae7a Imported from libpng-1.0.0a.tar 2009-04-06 16:04:21 -05:00
Glenn Randers-Pehrson
0f7202f074 Imported from libpng-1.0.0.tar 2009-04-06 16:04:20 -05:00
Glenn Randers-Pehrson
397100eb8a Imported from libpng-1.00.tar 2009-04-06 16:04:20 -05:00
Glenn Randers-Pehrson
4922b1b6e9 Imported from libpng-0.99p.tar 2009-04-06 16:04:19 -05:00
Glenn Randers-Pehrson
38d73aff67 Imported from libpng-0.99n.tar 2009-04-06 16:04:18 -05:00
33 changed files with 230 additions and 155 deletions

10
CHANGES
View File

@@ -268,3 +268,13 @@ version 1.00 [March 7, 1998]
changed some typedefs (s_start, etc.) in pngrutil.c
fixed dimensions of "short_months" array in pngwrite.c
Replaced ansi2knr.c with the one from jpeg-v6
version 1.0.0 [March 8, 1998]
Changed name from 1.00 to 1.0.0 (Adam Costello)
Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
version 1.0.0a [March 9, 1998]
Fixed three bugs in pngrtran.c to make gamma+background handling consistent
(Greg Roelofs)
Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
for major, minor, and bugfix releases. This is 10001. (Adam Costello,
Tom Lane)
Make months range from 1-12 in png_convert_to_rfc1123

10
INSTALL
View File

@@ -1,5 +1,5 @@
Installing libpng version 1.00 March 7, 1998
Installing libpng version 1.0.0a March 9, 1998
Before installing libpng, you must first install zlib. zlib
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.
You can rename the directories that you downloaded (they
might be called "libpng-1.00 or "lpng100" and "zlib-1.1.1"
might be called "libpng-1.0.0a or "lpng100" and "zlib-1.1.1"
or "zlib111") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:
@@ -44,11 +44,13 @@ include
makefile.dec => DEC Alpha UNIX makefile
makefile.sgi => Silicon Graphics IRIX makefile
makefile.sun => Sun makefile
makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.00)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.00)
makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0)
makefile.mip => MIPS makefile
makefile.aco => Acorn makefile
makefile.ama => Amiga makefile
smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler
(Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc)
makefile.atr => Atari makefile
makefile.bor => Borland makefile
build.bat => MS-DOS batch file for Borland compiler

8
README
View File

@@ -1,4 +1,4 @@
README for libpng 1.00 (shared library 2.1)
README for libpng 1.0.0a (shared library 2.1)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
@@ -161,11 +161,13 @@ Files in this distribution:
makefile.dec => DEC Alpha UNIX makefile
makefile.sgi => Silicon Graphics IRIX makefile
makefile.sun => Sun makefile
makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.00)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.00)
makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0)
makefile.mip => MIPS makefile
makefile.aco => Acorn makefile
makefile.ama => Amiga makefile
smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler
(Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc)
makefile.atr => Atari makefile
makefile.bor => Borland makefile
build.bat => MS-DOS batch file for Borland compiler

View File

@@ -15,7 +15,7 @@
#include "png.h"
/* Check to see if a file is a PNG file using png_check_sig(). Returns
/* Check to see if a file is a PNG file using png_sig_cmp(). Returns
* non-zero if the image is a PNG, and 0 if it isn't a PNG.
*
* If this call is successful, and you are going to keep the file open,
@@ -29,7 +29,7 @@
*
* Many applications already read the first 2 or 4 bytes from the start
* of the image to determine the file type, so it would be easiest just
* to pass the bytes to png_check_sig() or even skip that if you know
* to pass the bytes to png_sig_cmp() or even skip that if you know
* you have a PNG file, and call png_set_sig_bytes().
*/
#define PNG_BYTES_TO_CHECK 4
@@ -46,7 +46,7 @@ int check_if_png(char *file_name, FILE **fp)
return 0;
/* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. */
return(png_check_sig(buf, PNG_BYTES_TO_CHECK));
return(png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK));
}
/* Read a PNG file. You may want to return an error code if the read
@@ -92,7 +92,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
}
/* Allocate/initialize the memory for image information. REQUIRED. */
info_ptr = png_create_info_struct();
info_ptr = png_create_info_struct(png_ptr);
if (info_ptr == NULL)
{
fclose(fp);
@@ -127,7 +127,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
#endif no_streams /* Use only one I/O method! */
/* If we have already read some of the signature */
png_set_sig_bytes_read(png_ptr, sig_read);
png_set_sig_bytes(png_ptr, sig_read);
/* The call to png_read_info() gives us all of the information from the
* PNG file before the first IDAT (image data chunk). REQUIRED

View File

@@ -1,4 +1,4 @@
.TH LIBPNG 3 "March 7, 1998"
.TH LIBPNG 3 "March 9, 1998"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library
.SH SYNOPSIS
@@ -396,7 +396,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
libpng version 1.00 March 7, 1998
libpng version 1.0.0a March 9, 1998
Updated and distributed by Glenn Randers-Pehrson
<randeg@alumni.rpi.edu>
Copyright (c) 1998, Glenn Randers-Pehrson
@@ -2291,28 +2291,29 @@ on the library has not always been consistent and straightforward.
The following table summarizes matters since version 0.89c, which was
the first widely used release:
source png.h shared-lib
version string version
------- ------ ----------
0.89c ("1.0 beta 3") 0.89 1.0.89
0.90 ("1.0 beta 4") 0.90 0.90
[should have been 2.0.90]
0.95 ("1.0 beta 5") 0.95 0.95
[should have been 2.0.95]
0.96 ("1.0 beta 6") 0.96 0.96
[should have been 2.0.96]
0.97b ("1.00.97 beta 7") 1.00.97 1.0.0
[should have been 2.0.97]
0.97c 0.97 2.0.97
0.98 0.98 2.0.98
0.99 0.99 2.0.99
0.99a-g 0.99 2.0.99
1.0 1.00 2.1.0
source png.h png.h shared-lib
version string int version
------- ------ ------ ----------
0.89c 0.89 89 1.0.89
0.90 0.90 90 0.90 [should be 2.0.90]
0.95 0.95 95 0.95 [should be 2.0.95]
0.96 0.96 96 0.96 [should be 2.0.96]
0.97b 7") 1.00.97 97 1.0.1 [should be 2.0.97]
0.97c 0.97 97 2.0.97
0.98 0.98 98 2.0.98
0.99 0.99 98 2.0.99
0.99a-m 0.99 99 2.0.99
1.00 1.00 100 2.1.0 [should be 10000]
1.0.0 1.0.0 100 2.1.0 [should be 10000]
1.0.1 1.0.1 10001 2.1.0
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
Henceforth the source version will match the shared-library
minor and patch numbers; the shared-library major version number will be
used for changes in backward compatibility, as it is intended.
The PNG_PNGLIB_VER macro, which is not used within libpng but
is available for applications, is an unsigned integer of the form
xyyzz corresponding to the source version x.y.z (leading zeros in y and z)
.SH "SEE ALSO"
libpngpf(3), png(5)
.LP
@@ -2365,7 +2366,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.00 (March 7, 1998):
Libpng version 1.0.0a March 9, 1998:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (randeg@alumni.rpi.edu).

View File

@@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng
libpng version 1.00 March 7, 1998
libpng version 1.0.0a March 9, 1998
Updated and distributed by Glenn Randers-Pehrson
<randeg@alumni.rpi.edu>
Copyright (c) 1998, Glenn Randers-Pehrson

View File

@@ -1,4 +1,4 @@
.TH LIBPNGPF 3 "March 7, 1998"
.TH LIBPNGPF 3 "March 9, 1998"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library
(private functions)

0
lpng100a Normal file
View File

2
png.5
View File

@@ -1,4 +1,4 @@
.TH PNG 5 "March 7, 1998"
.TH PNG 5 "March 9, 1998"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION

6
png.c
View File

@@ -1,12 +1,12 @@
/* png.c - location for general purpose libpng functions
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL
@@ -16,7 +16,7 @@
/* Version information for C files. This had better match the version
* string defined in png.h.
*/
char png_libpng_ver[5] = "1.00";
char png_libpng_ver[12] = "1.0.0a";
/* Place to hold the signature string for a PNG file. */
png_byte FARDATA png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10};

54
png.h
View File

@@ -1,12 +1,12 @@
/* png.h - header file for PNG reference library
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see the COPYRIGHT NOTICE below.
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998 Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* Note about libpng version numbers:
*
@@ -16,23 +16,29 @@
* The following table summarizes matters since version 0.89c, which was
* the first widely used release:
*
* source png.h shared-lib
* version string version
* ------- ------ ----------
* 0.89c ("1.0 beta 3") 0.89 1.0.89
* 0.90 ("1.0 beta 4") 0.90 0.90 [should have been 2.0.90]
* 0.95 ("1.0 beta 5") 0.95 0.95 [should have been 2.0.95]
* 0.96 ("1.0 beta 6") 0.96 0.96 [should have been 2.0.96]
* 0.97b ("1.00.97 beta 7") 1.00.97 1.0.0 [should have been 2.0.97]
* 0.97c 0.97 2.0.97
* 0.98 0.98 2.0.98
* 0.99 0.99 2.0.99
* 0.99a-i 0.99 2.0.99
* 1.00 1.00 2.1.0
* source png.h png.h shared-lib
* version string int version
* ------- ------ ------ ----------
* 0.89c ("1.0 beta 3") 0.89 89 1.0.89
* 0.90 ("1.0 beta 4") 0.90 90 0.90 [should have been 2.0.90]
* 0.95 ("1.0 beta 5") 0.95 95 0.95 [should have been 2.0.95]
* 0.96 ("1.0 beta 6") 0.96 96 0.96 [should have been 2.0.96]
* 0.97b ("1.00.97 beta 7") 1.00.97 97 1.0.1 [should have been 2.0.97]
* 0.97c 0.97 97 2.0.97
* 0.98 0.98 98 2.0.98
* 0.99 0.99 98 2.0.99
* 0.99a-m 0.99 99 2.0.99
* 1.00 1.00 100 2.1.0 [int should be 10000]
* 1.0.0 1.0.0 100 2.1.0 [int should be 10000]
* 1.0.1 1.0.1 10001 2.1.0
*
* Henceforth the source version will match the shared-library minor
* and patch numbers; the shared-library major version number will be
* used for changes in backward compatibility, as it is intended.
* The PNG_PNGLIB_VER macro, which is not used within libpng but
* is available for applications, is an unsigned integer of the form
* xyyzz corresponding to the source version x.y.z (leading zeros in y and z)
*
*
* See libpng.txt for more information. The PNG specification is available
* as RFC 2083 <ftp://ftp.uu.net/graphics/png/documents/>
@@ -112,19 +118,21 @@ extern "C" {
*/
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.00"
#define PNG_LIBPNG_VER_STRING "1.0.0a"
/* careful here. At one time, I wanted to use 082, but that would be octal.
* Version 1.0 will be 100 here, etc.
*/
#define PNG_LIBPNG_VER 100
/* Gareful here. At one time, Guy wanted to use 082, but that would be octal.
* We must not include leading zeroes.
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
* version 1.0.0 was mis-numbered 100 instead of 10000). From
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z-bugfix*/
#define PNG_LIBPNG_VER 10001
/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
/* Version information for C files, stored in png.c. This had better match
* the version above.
*/
extern char png_libpng_ver[5];
extern char png_libpng_ver[12]; /* need room for 99.99.99aa */
/* Structures to facilitate easy interlacing. See png.c for more details */
extern int FARDATA png_pass_start[7];
@@ -812,7 +820,7 @@ extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));
extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr));
#endif /* PNG_READ_PACK_SUPPORTED || PNG_WRITE_PACK_SUPPORTED */
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPOR)
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
/* Swap packing order of pixels in bytes. */
extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr));
#endif /* PNG_READ_PACKSWAP_SUPPORTED || PNG_WRITE_PACKSWAP_SUPPOR */
@@ -1834,7 +1842,7 @@ PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row));
#endif
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPOR)
#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row));
#endif

View File

@@ -1,12 +1,12 @@
/* pngconf.h - machine configurable file for libpng
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
/* Any machine specific code is near the front of this file, so if you

View File

@@ -1,12 +1,12 @@
/* pngerror.c - stub functions for i/o and memory allocation
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file provides a location for all error handling. Users which
* need special error handling are expected to write replacement functions

View File

@@ -1,12 +1,12 @@
/* pngget.c - retrieval of values from info struct
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL

View File

@@ -1,12 +1,12 @@
/* pngmem.c - stub functions for memory allocation
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file provides a location for all memory allocation. Users which
* need special memory handling are expected to modify the code in this file

View File

@@ -1,12 +1,12 @@
/* pngpread.c - read a png file in push mode
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL

View File

@@ -1,12 +1,12 @@
/* pngread.c - read a PNG file
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file contains routines that an application calls directly to
* read a PNG file or stream.
@@ -719,10 +719,8 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
#endif
if (png_ptr->flags & PNG_FLAG_FREE_PALETTE)
png_zfree(png_ptr, png_ptr->palette);
#if defined(PNG_READ_BACKGROUND_SUPPORTED) && defined(PNG_READ_bKGD_SUPPORTED)
if (png_ptr->flags & PNG_FLAG_FREE_TRANS)
png_free(png_ptr, png_ptr->trans);
#endif
#if defined(PNG_READ_hIST_SUPPORTED)
if (png_ptr->flags & PNG_FLAG_FREE_HIST)
png_free(png_ptr, png_ptr->hist);

View File

@@ -1,12 +1,12 @@
/* pngrio.c - functions for data input
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file provides a location for all input. Users which need
* special handling are expected to write a function which has the same

View File

@@ -1,12 +1,12 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file contains functions optionally called by an application
* in order to tell libpng how to handle data when reading a PNG.
@@ -665,7 +665,8 @@ png_init_read_transformations(png_structp png_ptr)
if (png_ptr->transformations & PNG_INVERT_ALPHA)
{
#if defined(PNG_READ_EXPAND_SUPPORTED)
if (png_ptr->transformations & !PNG_EXPAND)
/* GRR BUG #1: was (png_ptr->transformations & !PNG_EXPAND) */
if (!(png_ptr->transformations & PNG_EXPAND))
#endif
{
/* invert the alpha channel (in tRNS) unless the pixels are
@@ -712,41 +713,65 @@ png_init_read_transformations(png_structp png_ptr)
}
else
{
double g;
double g, gs;
g = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma);
if (png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN||
fabs(g - 1.0) < PNG_GAMMA_THRESHOLD)
/*
GRR BUG #3: inconsistent with handling of full RGBA below
g = 1.0 / png_ptr->background_gamma;
gs = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma);
*/
switch (png_ptr->background_gamma_type)
{
back.red = (png_byte)png_ptr->background.red;
case PNG_BACKGROUND_GAMMA_SCREEN:
g = (png_ptr->screen_gamma);
gs = 1.0;
break;
case PNG_BACKGROUND_GAMMA_FILE:
g = 1.0 / (png_ptr->gamma);
gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
break;
case PNG_BACKGROUND_GAMMA_UNIQUE:
g = 1.0 / (png_ptr->background_gamma);
gs = 1.0 / (png_ptr->background_gamma *
png_ptr->screen_gamma);
break;
default:
g = 1.0; /* back_1 */
gs = 1.0; /* back */
}
if (
/*
GRR BUG #2: This creates self-inconsistent images--fully
transparent and fully opaque look fine, but translucent
pixels are wrong (too bright if XV's code can be trusted).
Commenting it out makes an internally self-consistent
image, but still not consistent with RGBA version of same
thing (again, too bright in XV).
png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN||
*/
fabs(gs - 1.0) < PNG_GAMMA_THRESHOLD)
{
back.red = (png_byte)png_ptr->background.red;
back.green = (png_byte)png_ptr->background.green;
back.blue = (png_byte)png_ptr->background.blue;
back.blue = (png_byte)png_ptr->background.blue;
}
else
{
back.red =
(png_byte)(pow((double)png_ptr->background.red/255, g) *
255.0 + 0.5);
back.green =
(png_byte)(pow((double)png_ptr->background.green/255, g) *
255.0 + 0.5);
back.blue =
(png_byte)(pow((double)png_ptr->background.blue/255, g) *
255.0 + 0.5);
back.red = (png_byte)(pow(
(double)png_ptr->background.red/255, gs) * 255.0 + .5);
back.green = (png_byte)(pow(
(double)png_ptr->background.green/255, gs) * 255.0 + .5);
back.blue = (png_byte)(pow(
(double)png_ptr->background.blue/255, gs) * 255.0 + .5);
}
g = 1.0 / png_ptr->background_gamma;
back_1.red =
(png_byte)(pow((double)png_ptr->background.red/255, g) *
255.0 + 0.5);
back_1.green =
(png_byte)(pow((double)png_ptr->background.green/255, g) *
255.0 + 0.5);
back_1.blue =
(png_byte)(pow((double)png_ptr->background.blue/255, g) *
255.0 + 0.5);
back_1.red = (png_byte)(pow(
(double)png_ptr->background.red/255, g) * 255.0 + .5);
back_1.green = (png_byte)(pow(
(double)png_ptr->background.green/255, g) * 255.0 + .5);
back_1.blue = (png_byte)(pow(
(double)png_ptr->background.blue/255, g) * 255.0 + .5);
}
for (i = 0; i < num_palette; i++)

View File

@@ -1,12 +1,12 @@
/* pngrutil.c - utilities to read a PNG file
*
* libpng 0.99
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file contains routines which are only called from within
* libpng itself during the course of reading an image.

View File

@@ -1,12 +1,12 @@
/* pngset.c - storage of image information into info struct
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* The functions here are used during reads to store data from the file
* into the info struct, and during writes to store application data

View File

@@ -1,12 +1,12 @@
/* pngtest.c - a simple test program to test libpng
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This program reads in a PNG image, writes it out again, and then
* compares the two files. If the files are identical, this shows that
@@ -79,8 +79,7 @@ write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass)
}
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
/* example of using user transform callback (we don't transform anything,
but merely count the black pixels) */
@@ -166,7 +165,7 @@ count_black_pixels(png_structp png_ptr, png_row_infop row_info, png_bytep data)
}
}
}
#endif /* PNG_READ|WRITE_USER_TRANSFORM_SUPPORTED */
#endif /* PNG_WRITE_USER_TRANSFORM_SUPPORTED */
static int verbose = 0;
static int wrote_question = 0;
@@ -563,11 +562,10 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
png_set_read_status_fn(read_ptr, NULL);
}
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
black_pixels=0;
png_set_write_user_transform_fn(write_ptr, count_black_pixels);
#endif
# if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
black_pixels=0;
png_set_write_user_transform_fn(write_ptr, count_black_pixels);
# endif
png_debug(0, "Reading info struct\n");
png_read_info(read_ptr, read_info_ptr);
@@ -949,8 +947,7 @@ main(int argc, char *argv[])
fprintf(STDERR, "Testing %s:",argv[i]);
kerror = test_one_file(argv[i], outname);
if (kerror == 0)
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
fprintf(STDERR, " PASS (%lu black pixels)\n",black_pixels);
#else
fprintf(STDERR, " PASS\n");
@@ -996,8 +993,7 @@ main(int argc, char *argv[])
if(kerror == 0)
{
if(verbose == 1 || i == 2)
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
fprintf(STDERR, " PASS (%lu black pixels)\n",black_pixels);
#else
fprintf(STDERR, " PASS\n");

View File

@@ -1,12 +1,12 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL

View File

@@ -1,12 +1,12 @@
/* pngwio.c - functions for data output
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*
* This file provides a location for all output. Users which need
* special handling are expected to write functions which have the same

View File

@@ -1,12 +1,12 @@
/* pngwrite.c - general routines to write a PNG file
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
/* get internal access to png.h */
@@ -225,7 +225,7 @@ png_write_end(png_structp png_ptr, png_infop info_ptr)
png_charp
png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
{
static const char short_months[12][4] =
static PNG_CONST char short_months[12][4] =
{"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
@@ -239,7 +239,7 @@ png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
{
char near_time_buf[29];
sprintf(near_time_buf, "%d %s %d %02d:%02d:%02d +0000",
ptime->day % 31, short_months[ptime->month],
ptime->day % 31, short_months[ptime->month - 1],
ptime->year, ptime->hour % 24, ptime->minute % 60,
ptime->second % 61);
png_memcpy(png_ptr->time_buffer, near_time_buf,
@@ -247,7 +247,7 @@ png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
}
#else
sprintf(png_ptr->time_buffer, "%d %s %d %02d:%02d:%02d +0000",
ptime->day % 31, short_months[ptime->month],
ptime->day % 31, short_months[ptime->month - 1],
ptime->year, ptime->hour % 24, ptime->minute % 60,
ptime->second % 61);
#endif

View File

@@ -1,12 +1,12 @@
/* pngwtran.c - transforms the data in a row for PNG writers
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL

View File

@@ -1,12 +1,12 @@
/* pngwutil.c - utilities to write a PNG file
*
* libpng 1.00
* libpng 1.0.0a
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1996, 1997 Andreas Dilger
* Copyright (c) 1998, Glenn Randers-Pehrson
* March 7, 1998
* March 9, 1998
*/
#define PNG_INTERNAL
@@ -340,7 +340,7 @@ png_write_gAMA(png_structp png_ptr, double file_gamma)
png_byte buf[4];
png_debug(1, "in png_write_gAMA\n");
/* file_gamma is saved in 1/100,000ths */
/* file_gamma is saved in 1/1000000ths */
igamma = (png_uint_32)(file_gamma * 100000.0 + 0.5);
png_save_uint_32(buf, igamma);
png_write_chunk(png_ptr, png_gAMA, buf, (png_size_t)4);
@@ -426,7 +426,7 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
png_byte buf[32];
png_debug(1, "in png_write_cHRM\n");
/* each value is saved int 1/100,000ths */
/* each value is saved int 1/1000000ths */
if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 ||
white_x + white_y > 1.0)
{

7
scripts/SCOPTIONS.ppc Normal file
View File

@@ -0,0 +1,7 @@
OPTIMIZE
OPTPEEP
OPTTIME
OPTSCHED
AUTOREGISTER
PARMS=REGISTERS
INCLUDEDIR=hlp:ppc/include

View File

@@ -24,7 +24,7 @@ RANLIB=ranlib
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.00
PNGMIN = 1.0
PNGVER = $(PNGMAJ).$(PNGMIN)
# where make install puts libpng.a, libpng.so*, and png.h

View File

@@ -23,7 +23,7 @@ RANLIB=echo
# read libpng.txt or png.h to see why PNGMAJ is 2. You should not
# have to change it.
PNGMAJ = 2
PNGMIN = 1.00
PNGMIN = 1.0
PNGVER = $(PNGMAJ).$(PNGMIN)
# where make install puts libpng.a, libpng.so*, and png.h

View File

@@ -14,15 +14,12 @@ O=.obj
E=.exe
# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O)
pngwutil$(O)
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)
OBJSL1 = +png$(O) +pngset$(O) +pngget$(O) +pngrutil$(O) +pngtrans$(O)
OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O)
+pngerror$(O)
OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O)
+pngwio$(O)
OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O) +pngerror$(O)
OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O) +pngwio$(O)
all: libpng.lib pngtest.exe
@@ -82,4 +79,4 @@ libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
pngtest$(E): pngtest$(O) libpng.lib
$(CC) $(LDFLAGS) pngtest.obj libpng.lib zlib.lib
# End of makefile for libpng
# End of makefile for libpng

View File

@@ -1,5 +1,5 @@
# Makefile for libpng
# Watcom 10a+ 32-bit protected mode flat memory model
# Watcom 10a and later 32-bit protected mode flat memory model
# Adapted by Pawel Mrochen, based on makefile.msc
# For conditions of distribution and use, see copyright notice in png.h
@@ -7,9 +7,9 @@
# To use, do "wmake -f makefile.wat"
# ------------- Watcom 10a+ -------------
# ------------- Watcom 10a and later -------------
MODEL=-mf
CFLAGS= $(MODEL) -fpi87 -fp5 -5r -oaeilmnrt -s -i=..\zlib
CFLAGS= $(MODEL) -fpi87 -fp5 -5r -oaeilmnrt -s -zp4 -i=..\zlib
CC=wcc386
LD=wcl386
LIB=wlib -b -c

29
scripts/smakefile.ppc Normal file
View File

@@ -0,0 +1,29 @@
# Amiga powerUP (TM) Makefile
# makefile for libpng and SAS C V6.58/7.00 PPC compiler
# Copyright (C) 1998 by Andreas R. Kleinert
CC = scppc
CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \
OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8
LIBNAME = libpng.a
AR = ppc-amigaos-ar
AR_FLAGS = cr
RANLIB = ppc-amigaos-ranlib
LDFLAGS = -r -o
LDLIBS = ../zlib/libzip.a LIB:scppc.a
LN = ppc-amigaos-ld
RM = delete quiet
MKDIR = makedir
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \
pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o
all: $(LIBNAME) pngtest
$(LIBNAME): $(OBJS)
$(AR) $(AR_FLAGS) $@ $(OBJS)
$(RANLIB) $@
pngtest: pngtest.o $(LIBNAME)
$(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \
LIB:end.o