Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Libpng
提交
4922b1b6
T
Third Party Libpng
项目概览
OpenHarmony
/
Third Party Libpng
接近 2 年 前同步成功
通知
4
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Libpng
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4922b1b6
编写于
3月 08, 1998
作者:
G
Glenn Randers-Pehrson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Imported from libpng-0.99p.tar
上级
38d73aff
变更
31
隐藏空白更改
内联
并排
Showing
31 changed file
with
195 addition
and
121 deletion
+195
-121
CHANGES
CHANGES
+8
-0
INSTALL
INSTALL
+6
-4
README
README
+5
-3
example.c
example.c
+5
-5
libpng.3
libpng.3
+5
-5
libpng.txt
libpng.txt
+1
-1
libpngpf.3
libpngpf.3
+1
-1
png.5
png.5
+1
-1
png.c
png.c
+3
-3
png.h
png.h
+13
-12
pngconf.h
pngconf.h
+2
-2
pngerror.c
pngerror.c
+2
-2
pngget.c
pngget.c
+4
-4
pngmem.c
pngmem.c
+2
-2
pngpread.c
pngpread.c
+2
-2
pngread.c
pngread.c
+2
-2
pngrio.c
pngrio.c
+2
-2
pngrtran.c
pngrtran.c
+54
-29
pngrutil.c
pngrutil.c
+12
-12
pngset.c
pngset.c
+2
-2
pngtest.c
pngtest.c
+2
-2
pngtrans.c
pngtrans.c
+2
-2
pngwio.c
pngwio.c
+2
-2
pngwrite.c
pngwrite.c
+2
-2
pngwtran.c
pngwtran.c
+2
-2
pngwutil.c
pngwutil.c
+13
-13
scripts/SCOPTIONS.ppc
scripts/SCOPTIONS.ppc
+7
-0
scripts/makefile.lnx
scripts/makefile.lnx
+1
-1
scripts/makefile.s2x
scripts/makefile.s2x
+1
-1
scripts/makefile.wat
scripts/makefile.wat
+2
-2
scripts/smakefile.ppc
scripts/smakefile.ppc
+29
-0
未找到文件。
CHANGES
浏览文件 @
4922b1b6
...
...
@@ -268,3 +268,11 @@ 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.1 [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 xyyyzzzz instead of xyz
for major, minor, and bugfix releases. This is 10000001L. (Adam Costello)
INSTALL
浏览文件 @
4922b1b6
Installing libpng version 1.0
0 March 7
, 1998
Installing libpng version 1.0
.1 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.0
0
or "lpng100" and "zlib-1.1.1"
might be called "libpng-1.0
.1
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.0
0
)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0
0
)
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
...
...
README
浏览文件 @
4922b1b6
README for libpng 1.0
0
(shared library 2.1)
README for libpng 1.0
.1
(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.0
0
)
makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0
0
)
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
...
...
example.c
浏览文件 @
4922b1b6
...
...
@@ -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
...
...
libpng.3
浏览文件 @
4922b1b6
.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.0
0 March 7
, 1998
libpng version 1.0
.1 March 9
, 1998
Updated and distributed by Glenn Randers-Pehrson
<randeg@alumni.rpi.edu>
Copyright (c) 1998, Glenn Randers-Pehrson
...
...
@@ -2301,13 +2301,13 @@ the first widely used release:
[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
0.97b ("1.00.97 beta 7") 1.00.97 1.0.
1
[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-m 0.99 2.0.99
1.0
1.00 2.1.0
1.0
.1
1.00 2.1.0
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
...
...
@@ -2365,7 +2365,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.0
0 (March 7
, 1998):
Libpng version 1.0
.1 (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).
...
...
libpng.txt
浏览文件 @
4922b1b6
libpng.txt - A description on how to use and modify libpng
libpng version 1.0
0 March 7
, 1998
libpng version 1.0
.1 March 9
, 1998
Updated and distributed by Glenn Randers-Pehrson
<randeg@alumni.rpi.edu>
Copyright (c) 1998, Glenn Randers-Pehrson
...
...
libpngpf.3
浏览文件 @
4922b1b6
.TH LIBPNGPF 3 "March
7
, 1998"
.TH LIBPNGPF 3 "March
9
, 1998"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library
(private functions)
...
...
png.5
浏览文件 @
4922b1b6
.TH PNG 5 "March
7
, 1998"
.TH PNG 5 "March
9
, 1998"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
...
...
png.c
浏览文件 @
4922b1b6
/* png.c - location for general purpose libpng functions
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
[
6
]
=
"1.0.1
"
;
/* Place to hold the signature string for a PNG file. */
png_byte
FARDATA
png_sig
[
8
]
=
{
137
,
80
,
78
,
71
,
13
,
10
,
26
,
10
};
...
...
png.h
浏览文件 @
4922b1b6
/* png.h - header file for PNG reference library
*
* libpng 1.0
0
* libpng 1.0
.1
* 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:
*
...
...
@@ -23,12 +23,12 @@
* 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.97b ("1.00.97 beta 7") 1.00.97 1.0.
1
[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-m 0.99 2.0.99
* 1.0
0
1.00 2.1.0
* 1.0
.1
1.00 2.1.0
*
* Henceforth the source version will match the shared-library minor
* and patch numbers; the shared-library major version number will be
...
...
@@ -112,19 +112,20 @@ extern "C" {
*/
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.0
0
"
#define PNG_LIBPNG_VER_STRING "1.0
.1
"
/* 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
* We must not include leading blanks.
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here. From
* version 1.0.1 it's xxxyyyzzzzL, where x=major, y=minor, z-bugfix*/
#define PNG_LIBPNG_VER 10000001L
/* 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
[
6
];
/* Structures to facilitate easy interlacing. See png.c for more details */
extern
int
FARDATA
png_pass_start
[
7
];
...
...
@@ -1483,11 +1484,11 @@ extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
#define PNG_GAMMA 0x2000
#define PNG_GRAY_TO_RGB 0x4000
#define PNG_FILLER 0x8000
#define PNG_PACKSWAP 0x1
0000
L
#define PNG_PACKSWAP 0x1
.0.1
L
#define PNG_SWAP_ALPHA 0x20000L
#define PNG_STRIP_ALPHA 0x40000L
#define PNG_INVERT_ALPHA 0x80000L
#define PNG_USER_TRANSFORM 0x1
0000
0L
#define PNG_USER_TRANSFORM 0x1
.0.1
0L
/* flags for png_create_struct */
#define PNG_STRUCT_PNG 0x0001
...
...
@@ -1516,7 +1517,7 @@ extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
#define PNG_FLAG_FREE_TRANS 0x2000
#define PNG_FLAG_FREE_HIST 0x4000
#define PNG_FLAG_HAVE_CHUNK_HEADER 0x8000L
#define PNG_FLAG_WROTE_tIME 0x1
0000
L
#define PNG_FLAG_WROTE_tIME 0x1
.0.1
L
#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
PNG_FLAG_CRC_ANCILLARY_NOWARN)
...
...
pngconf.h
浏览文件 @
4922b1b6
/* pngconf.h - machine configurable file for libpng
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngerror.c
浏览文件 @
4922b1b6
/* pngerror.c - stub functions for i/o and memory allocation
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngget.c
浏览文件 @
4922b1b6
/* pngget.c - retrieval of values from info struct
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
@@ -259,14 +259,14 @@ float
png_get_x_offset_inches
(
png_structp
png_ptr
,
png_infop
info_ptr
)
{
return
((
float
)
png_get_x_offset_microns
(
png_ptr
,
info_ptr
)
*
.
03
937
/
1
0000
00
.
+
.
5
)
*
.
03
937
/
1
.
0
.
1
00
.
+
.
5
)
}
float
png_get_y_offset_inches
(
png_structp
png_ptr
,
png_infop
info_ptr
)
{
return
((
float
)
png_get_y_offset_microns
(
png_ptr
,
info_ptr
)
*
.
03
937
/
1
0000
00
.
+
.
5
)
*
.
03
937
/
1
.
0
.
1
00
.
+
.
5
)
}
#if defined(PNG_READ_pHYs_SUPPORTED)
...
...
pngmem.c
浏览文件 @
4922b1b6
/* pngmem.c - stub functions for memory allocation
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngpread.c
浏览文件 @
4922b1b6
/* pngpread.c - read a png file in push mode
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngread.c
浏览文件 @
4922b1b6
/* pngread.c - read a PNG file
*
* libpng 1.0
0
* libpng 1.0
.1
* 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.
...
...
pngrio.c
浏览文件 @
4922b1b6
/* pngrio.c - functions for data input
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngrtran.c
浏览文件 @
4922b1b6
/* pngrtran.c - transforms the data in a row for PNG readers
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
);
/*
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
)
{
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
(
png_ptr
->
background_gamma_type
==
PNG_BACKGROUND_GAMMA_SCREEN
||
fabs
(
g
-
1
.
0
)
<
PNG_GAMMA_THRESHOLD
)
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
.
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
++
)
...
...
pngrutil.c
浏览文件 @
4922b1b6
/* pngrutil.c - utilities to read a PNG file
*
* libpng 1.0
0
* libpng 1.0
.1
* 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.
...
...
@@ -436,7 +436,7 @@ png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
}
#endif
/* PNG_READ_sRGB_SUPPORTED */
file_gamma
=
(
float
)
igamma
/
(
float
)
1
0000
0
.
0
;
file_gamma
=
(
float
)
igamma
/
(
float
)
1
.
0
.
1
0
.
0
;
#ifdef PNG_READ_GAMMA_SUPPORTED
png_ptr
->
gamma
=
file_gamma
;
#endif
...
...
@@ -549,11 +549,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
white_x
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
white_x
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
white_y
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
white_y
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
if
(
white_x
<
0
||
white_x
>
0
.
8
||
white_y
<
0
||
white_y
>
0
.
8
||
white_x
+
white_y
>
1
.
0
)
...
...
@@ -565,11 +565,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
red_x
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
red_x
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
red_y
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
red_y
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
if
(
red_x
<
0
||
red_x
>
0
.
8
||
red_y
<
0
||
red_y
>
0
.
8
||
red_x
+
red_y
>
1
.
0
)
...
...
@@ -581,11 +581,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
green_x
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
green_x
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
green_y
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
green_y
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
if
(
green_x
<
0
||
green_x
>
0
.
8
||
green_y
<
0
||
green_y
>
0
.
8
||
green_x
+
green_y
>
1
.
0
)
...
...
@@ -597,11 +597,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
blue_x
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
blue_x
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
png_crc_read
(
png_ptr
,
buf
,
4
);
val
=
png_get_uint_32
(
buf
);
blue_y
=
(
float
)
val
/
(
float
)
1
0000
0
.
0
;
blue_y
=
(
float
)
val
/
(
float
)
1
.
0
.
1
0
.
0
;
if
(
blue_x
<
(
float
)
0
||
blue_x
>
(
float
)
0
.
8
||
blue_y
<
(
float
)
0
||
blue_y
>
(
float
)
0
.
8
||
blue_x
+
blue_y
>
(
float
)
1
.
0
)
...
...
@@ -694,7 +694,7 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
#if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED)
if
((
info_ptr
->
valid
&
PNG_INFO_gAMA
))
if
((
png_uint_32
)(
png_ptr
->
gamma
*
(
float
)
1
0000
0
.
+
.
5
)
!=
(
png_uint_32
)
45000L
)
if
((
png_uint_32
)(
png_ptr
->
gamma
*
(
float
)
1
.
0
.
1
0
.
+
.
5
)
!=
(
png_uint_32
)
45000L
)
{
png_warning
(
png_ptr
,
"Ignoring incorrect gAMA value when sRGB is also present"
);
...
...
pngset.c
浏览文件 @
4922b1b6
/* pngset.c - storage of image information into info struct
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngtest.c
浏览文件 @
4922b1b6
/* pngtest.c - a simple test program to test libpng
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngtrans.c
浏览文件 @
4922b1b6
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngwio.c
浏览文件 @
4922b1b6
/* pngwio.c - functions for data output
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngwrite.c
浏览文件 @
4922b1b6
/* pngwrite.c - general routines to write a PNG file
*
* libpng 1.0
0
* libpng 1.0
.1
* 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 */
...
...
pngwtran.c
浏览文件 @
4922b1b6
/* pngwtran.c - transforms the data in a row for PNG writers
*
* libpng 1.0
0
* libpng 1.0
.1
* 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
...
...
pngwutil.c
浏览文件 @
4922b1b6
/* pngwutil.c - utilities to write a PNG file
*
* libpng 1.0
0
* libpng 1.0
.1
* 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,8 +340,8 @@ 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/1
00,0
00ths */
igamma
=
(
png_uint_32
)(
file_gamma
*
1
0000
0
.
0
+
0
.
5
);
/* file_gamma is saved in 1/1
.0.1
00ths */
igamma
=
(
png_uint_32
)(
file_gamma
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
,
igamma
);
png_write_chunk
(
png_ptr
,
png_gAMA
,
buf
,
(
png_size_t
)
4
);
}
...
...
@@ -426,16 +426,16 @@ 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/1
00,0
00ths */
/* each value is saved int 1/1
.0.1
00ths */
if
(
white_x
<
0
||
white_x
>
0
.
8
||
white_y
<
0
||
white_y
>
0
.
8
||
white_x
+
white_y
>
1
.
0
)
{
png_warning
(
png_ptr
,
"Invalid cHRM white point specified"
);
return
;
}
itemp
=
(
png_uint_32
)(
white_x
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
white_x
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
,
itemp
);
itemp
=
(
png_uint_32
)(
white_y
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
white_y
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
4
,
itemp
);
if
(
red_x
<
0
||
red_x
>
0
.
8
||
red_y
<
0
||
red_y
>
0
.
8
||
...
...
@@ -444,9 +444,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
png_warning
(
png_ptr
,
"Invalid cHRM red point specified"
);
return
;
}
itemp
=
(
png_uint_32
)(
red_x
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
red_x
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
8
,
itemp
);
itemp
=
(
png_uint_32
)(
red_y
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
red_y
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
12
,
itemp
);
if
(
green_x
<
0
||
green_x
>
0
.
8
||
green_y
<
0
||
green_y
>
0
.
8
||
...
...
@@ -455,9 +455,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
png_warning
(
png_ptr
,
"Invalid cHRM green point specified"
);
return
;
}
itemp
=
(
png_uint_32
)(
green_x
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
green_x
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
16
,
itemp
);
itemp
=
(
png_uint_32
)(
green_y
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
green_y
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
20
,
itemp
);
if
(
blue_x
<
0
||
blue_x
>
0
.
8
||
blue_y
<
0
||
blue_y
>
0
.
8
||
...
...
@@ -466,9 +466,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y,
png_warning
(
png_ptr
,
"Invalid cHRM blue point specified"
);
return
;
}
itemp
=
(
png_uint_32
)(
blue_x
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
blue_x
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
24
,
itemp
);
itemp
=
(
png_uint_32
)(
blue_y
*
1
0000
0
.
0
+
0
.
5
);
itemp
=
(
png_uint_32
)(
blue_y
*
1
.
0
.
1
0
.
0
+
0
.
5
);
png_save_uint_32
(
buf
+
28
,
itemp
);
png_write_chunk
(
png_ptr
,
png_cHRM
,
buf
,
(
png_size_t
)
32
);
...
...
scripts/SCOPTIONS.ppc
0 → 100644
浏览文件 @
4922b1b6
OPTIMIZE
OPTPEEP
OPTTIME
OPTSCHED
AUTOREGISTER
PARMS=REGISTERS
INCLUDEDIR=hlp:ppc/include
scripts/makefile.lnx
浏览文件 @
4922b1b6
...
...
@@ -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.0
0
PNGMIN
=
1.0
PNGVER
=
$(PNGMAJ)
.
$(PNGMIN)
# where make install puts libpng.a, libpng.so*, and png.h
...
...
scripts/makefile.s2x
浏览文件 @
4922b1b6
...
...
@@ -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.0
0
PNGMIN
=
1.0
PNGVER
=
$(PNGMAJ)
.
$(PNGMIN)
# where make install puts libpng.a, libpng.so*, and png.h
...
...
scripts/makefile.wat
浏览文件 @
4922b1b6
# 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,7 +7,7 @@
# To use, do "wmake -f makefile.wat"
# ------------- Watcom 10a
+
-------------
# ------------- Watcom 10a
and later
-------------
MODEL
=
-mf
CFLAGS
=
$(MODEL)
-fpi87
-fp5
-5r
-oaeilmnrt
-s
-zp4
-i
=
..
\z
lib
CC
=
wcc386
...
...
scripts/smakefile.ppc
0 → 100644
浏览文件 @
4922b1b6
# 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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录