[PATCH 3/5] scripts: Add qoiconv to convert png to qoi

Jules Maselbas jmaselbas at kalray.eu
Fri Jan 14 03:14:04 PST 2022


On Fri, Jan 14, 2022 at 11:29:58AM +0100, Ahmad Fatoum wrote:
> On 10.01.22 23:12, Jules Maselbas wrote:
> > ImageMagick will eventually support the qoi image format, in the
> > mean time add a png to qoi conversion program.
> > 
> > Signed-off-by: Jules Maselbas <jmaselbas at kalray.eu>
> > ---
> >  scripts/Kconfig     |    5 +
> >  scripts/Makefile    |    1 +
> >  scripts/qoiconv.c   |   91 +
> >  scripts/stb_image.h | 7756 +++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 7853 insertions(+)
> >  create mode 100644 scripts/qoiconv.c
> >  create mode 100644 scripts/stb_image.h
> > 
> > diff --git a/scripts/Kconfig b/scripts/Kconfig
> > index 9b744deba9..747f665e02 100644
> > --- a/scripts/Kconfig
> > +++ b/scripts/Kconfig
> > @@ -110,6 +110,11 @@ config RK_USB_LOADER
> >  
> >  	  You need libusb-1.0 to compile this tool.
> >  
> > +config QOICONV
> > +	bool "QOI image format conversion" if COMPILE_HOST_TOOLS
> > +	help
> > +	  This enable converting png to qoi images to generate boot logo.
> > +
> >  endmenu
> >  
> >  menu "Target Tools"
> > diff --git a/scripts/Makefile b/scripts/Makefile
> > index dc5fa75f90..cbaf2d55ff 100644
> > --- a/scripts/Makefile
> > +++ b/scripts/Makefile
> > @@ -8,6 +8,7 @@ hostprogs-always-y					+= fix_size
> >  hostprogs-always-y					+= bareboxenv
> >  hostprogs-always-y					+= bareboxcrc32
> >  hostprogs-always-y					+= kernel-install
> > +hostprogs-always-$(CONFIG_QOICONV)			+= qoiconv
> >  hostprogs-always-$(CONFIG_CRYPTO_RSA_BUILTIN_KEYS)	+= rsatoc
> >  HOSTCFLAGS_rsatoc = `pkg-config --cflags openssl`
> >  HOSTLDLIBS_rsatoc = `pkg-config --libs openssl`
> > diff --git a/scripts/qoiconv.c b/scripts/qoiconv.c
> > new file mode 100644
> > index 0000000000..010c70ead0
> > --- /dev/null
> > +++ b/scripts/qoiconv.c
> > @@ -0,0 +1,91 @@
Probably missing SPDX identifiers as well

> > +/*
> > +
> > +Command line tool to convert between png <> qoi format
> > +
> > +Requires "stb_image.h" and "stb_image_write.h"
> > +Compile with: 
> > +	gcc qoiconv.c -std=c99 -O3 -o qoiconv
> > +
> > +Dominic Szablewski - https://phoboslab.org
> > +
> > +
> > +-- LICENSE: The MIT License(MIT)
> > +
> > +Copyright(c) 2021 Dominic Szablewski
> > +
> > +Permission is hereby granted, free of charge, to any person obtaining a copy of
> > +this software and associated documentation files(the "Software"), to deal in
> > +the Software without restriction, including without limitation the rights to
> > +use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies
> > +of the Software, and to permit persons to whom the Software is furnished to do
> > +so, subject to the following conditions :
> > +The above copyright notice and this permission notice shall be included in all
> > +copies or substantial portions of the Software.
> > +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
> > +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> > +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> > +SOFTWARE.
> > +
> > +*/
> 
> Can you not reuse the header added in the previous commit?
I am not sure what you mean here, the qoi.h header is reused from
lib/gui/qoi.h, see the include below.
Are you sugesting to _not_ reuse the header?


> > +
> > +
> > +#define STB_IMAGE_IMPLEMENTATION
> > +#define STBI_ONLY_PNG
> > +#define STBI_NO_LINEAR
> > +#include "stb_image.h"
> > +
> > +#define QOI_IMPLEMENTATION
> > +#include "../lib/gui/qoi.h"
included here.









More information about the barebox mailing list