diff --git a/build_linux64/libamscimglib4.linux64.a b/build_linux64/libamscimglib4.linux64.a index 231f44e..10e63bb 100644 Binary files a/build_linux64/libamscimglib4.linux64.a and b/build_linux64/libamscimglib4.linux64.a differ diff --git a/build_linux64/libamscimglib4.linux64.so b/build_linux64/libamscimglib4.linux64.so index 68d44d3..91609d1 100644 Binary files a/build_linux64/libamscimglib4.linux64.so and b/build_linux64/libamscimglib4.linux64.so differ diff --git a/build_linux64/objstore/amscimglib4_bitmap.o b/build_linux64/objstore/amscimglib4_bitmap.o index c6a3e28..9ecc5a7 100644 Binary files a/build_linux64/objstore/amscimglib4_bitmap.o and b/build_linux64/objstore/amscimglib4_bitmap.o differ diff --git a/build_linux64/objstore/amscimglib4_image.o b/build_linux64/objstore/amscimglib4_image.o index 2f157b5..41bb63a 100644 Binary files a/build_linux64/objstore/amscimglib4_image.o and b/build_linux64/objstore/amscimglib4_image.o differ diff --git a/dependencies/README_PrecompiledDependencies.txt b/dependencies/README_PrecompiledDependencies.txt index 83f2d7c..f737ab6 100644 --- a/dependencies/README_PrecompiledDependencies.txt +++ b/dependencies/README_PrecompiledDependencies.txt @@ -1,14 +1,28 @@ - This is a folder containing precompiled dependencies for this project from external libraries. A list of libraries, their sources and licenses is given below: LIBRARY LIST: - libpng - libjpeg - libz + libpng 1.6.47 + libjpeg 6b + libz 1.3.1 (zlib 1.3.1) A list of each library's own depenencies is given below: LIBRARY DEPENDENCY LIST: +Sources and Licenses: + + libjpegsr6: + release 6b of 27-Mar-1998 + https://libjpeg.sourceforge.net/ + https://sourceforge.net/projects/libjpeg/files/libjpeg/6b/ + No dependencies + + libpng 1.6.47: + depends on libz + https://libpng.sourceforge.io/index.html + https://sourceforge.net/projects/libpng/ + + libz 1.3.1 (zlib 1.3.1) + https://zlib.net/ \ No newline at end of file diff --git a/dependencies/libjpeg_LICENSE b/dependencies/libjpeg_LICENSE new file mode 100644 index 0000000..1af4a37 --- /dev/null +++ b/dependencies/libjpeg_LICENSE @@ -0,0 +1,84 @@ + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-1998, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + + +ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, +sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. +ansi2knr.c is NOT covered by the above copyright and conditions, but instead +by the usual distribution terms of the Free Software Foundation; principally, +that you must include source code if you redistribute it. (See the file +ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part +of any program generated from the IJG code, this does not limit you more than +the foregoing paragraphs do. + +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltconfig, ltmain.sh). Another support script, install-sh, is copyright +by M.I.T. but is also freely distributable. + +It appears that the arithmetic coding option of the JPEG spec is covered by +patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot +legally be used without obtaining one or more licenses. For this reason, +support for arithmetic coding has been removed from the free JPEG software. +(Since arithmetic coding provides only a marginal gain over the unpatented +Huffman mode, it is unlikely that very many implementations will support it.) +So far as we are aware, there are no patent restrictions on the remaining +code. + +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent, GIF reading support has +been removed altogether, and the GIF writer has been simplified to produce +"uncompressed GIFs". This technique does not use the LZW algorithm; the +resulting GIF files are larger than usual, but are readable by all standard +GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." + diff --git a/dependencies/libpng_LICENSE b/dependencies/libpng_LICENSE new file mode 100644 index 0000000..ea6df98 --- /dev/null +++ b/dependencies/libpng_LICENSE @@ -0,0 +1,134 @@ +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= + +PNG Reference Library License version 2 +--------------------------------------- + + * Copyright (c) 1995-2025 The PNG Reference Library Authors. + * Copyright (c) 2018-2025 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no event shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. + +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- + +libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. + +Some files in the "contrib" directory and some configure-generated +files that are distributed with libpng have other copyright owners, and +are released under other open source licenses. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +Some files in the "scripts" directory have other copyright owners, +but are released under this license. + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. diff --git a/dependencies/libz_LICENSE b/dependencies/libz_LICENSE new file mode 100644 index 0000000..ab8ee6f --- /dev/null +++ b/dependencies/libz_LICENSE @@ -0,0 +1,22 @@ +Copyright notice: + + (C) 1995-2022 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/src/amscimglib4/amscimglib4_bitmap.c b/src/amscimglib4/amscimglib4_bitmap.c index c98ddcf..477b3e3 100644 --- a/src/amscimglib4/amscimglib4_bitmap.c +++ b/src/amscimglib4/amscimglib4_bitmap.c @@ -264,10 +264,10 @@ void amscimglib4_writeimage_bmp(const char *fname, amscimglib4_image *img) { for(J=0;Jsizex;J++) { - //amscimglib4_get_pixel_RGBA(img,J,img->sizey-I-1,&R,&G,&B,&A); //go from bottom to top - R = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 0]; - G = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 1]; - B = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 2]; + amscimglib4_get_pixel_RGBA(img,J,img->sizey-I-1,&R,&G,&B,&A); //go from bottom to top + //R = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 0]; + //G = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 1]; + //B = img->data[4*(J + img->sizex*(img->sizey-I-1)) + 2]; buffer[J*bpp/8+0] = B; buffer[J*bpp/8+1] = G; diff --git a/src/amscimglib4/amscimglib4_image.c b/src/amscimglib4/amscimglib4_image.c index 4a4e53a..2dc6df0 100644 --- a/src/amscimglib4/amscimglib4_image.c +++ b/src/amscimglib4/amscimglib4_image.c @@ -212,6 +212,13 @@ AMSCIMGLIB4_API int amscimglib4_set_pixel_RGBA(amscimglib4_image *img, int x, in return ret; } + if(img->data==NULL) + { + ret = amscimglib4_failure; + return ret; + } + + if(x<0 || y<0 || x>=img->sizex || y>=img->sizey) { ret = amscimglib4_failure; @@ -243,6 +250,17 @@ AMSCIMGLIB4_API int amscimglib4_get_pixel_RGBA(amscimglib4_image *img, int x, in return ret; } + if(img->data==NULL) + { + ret = amscimglib4_failure; + if(R!=NULL) *R = 0; + if(G!=NULL) *G = 0; + if(B!=NULL) *B = 0; + if(A!=NULL) *A = 0; + + return ret; + } + if(x<0 || y<0 || x>=img->sizex || y>=img->sizey) { ret = amscimglib4_failure;