QOI image viewer on top of the Sokol headers

qoiview

build

A simple .qoi image file viewer on top of the sokol headers.

QOI: https://github.com/phoboslab/qoi Sokol: https://github.com/floooh/sokol

WASM version (see below for build instructions)

Clone:

> git clone https://github.com/floooh/qoiview
> cd qoiview

Build:

> mkdir build
> cd build

> cmake ..
> cmake --build .

To build a Release version on Linux and Mac:

> cmake -DCMAKE_BUILD_TYPE=MinSizeRel ..
> cmake --build .

To build a Release version on Windows with the VisualStudio toolchain:

> cmake ..
> cmake --build . --config MinSizeRel

NOTE: on Linux you'll also need to install the 'usual' dev-packages needed for X11+GL development.

Run:

On Linux and macOS:

> ./qoiview file=../images/dice.qoi

On Windows with the Visual Studio toolchain the exe is in a subdirectory:

> Debug\qoiview.exe file=../images/dice.qoi
> MinSizeRel\qoiview.exe file=../images/dice.qoi

Build and Run WASM/HTML version via Emscripten (Linux, macOS)

Setup the emscripten SDK as described here:

https://emscripten.org/docs/getting_started/downloads.html#installation-instructions

Don't forget to run source ./emsdk_env.sh after activating the SDK.

And then in the qoiview directory:

mkdir build
cd build
emcmake cmake -DCMAKE_BUILD_TYPE=MinSizeRel ..
cmake --build .

To run the compilation result in the system web browser:

> emrun qoiview.html

...which should look like this.

(this procedure should also work on Windows with make in the path, but is currently untested)

IDE Support

Visual Studio (Windows)

On Windows, cmake will automatically create a Visual Studio solution file in the build directory, which can be opened with:

> start qoiview.sln

Xcode (macOS)

Replace cmake .. with cmake -GXcode .. and open the generated Xcode project:

> cmake -GXcode ..
> open qoiview.xcodeproj

Visual Studio Code (Windows, Linux, macOS)

Use the MS C/C++ extension together with the MS CMake Tools extension and start Visual Studio code from the project's root directory. The CMake extension will detect the CMakeLists.txt file and take over from there.

Owner
Similar Resources

This repository provides the implementation of a ADC real-time viewer for an analog sound sensor.

Real-time sound analysing using microcontroller FRDM-KL25Z Acest cod este realizat pentru o platforma autonoma realizata cu kitul de la NXP care are r

Jan 20, 2022

This is a dithered photo viewer.

This is a dithered photo viewer.

M5Stack M5Paper: Photo viewer This is a dithered photo viewer for the M5Stack M5Paper device. It's capable of drawing 960x540 resolution pictures in 1

Aug 20, 2022

Level viewer for Super Mario Maker 2, based on JiXiaomai's work

Toost Level viewer for Super Mario Maker 2, based on JiXiaomai's work How to build If building for desktop, obtain development files for sdl2, glew, g

Oct 30, 2022

htop - an interactive process viewer

htop - an interactive process viewer

Introduction htop is a cross-platform interactive process viewer. htop allows scrolling the list of processes vertically and horizontally to see their

Nov 19, 2022

Registry viewer, editor and profile saver

Registry viewer, editor and profile saver

Registry Profiler This app allows certain registry values like the ones for brightness & volume to change and saved into profiles. The first menu give

Feb 6, 2022

F3D - Fast and minimalist 3D viewer

 F3D - Fast and minimalist 3D viewer

F3D - Fast and minimalist 3D viewer By Michael Migliore and Mathieu Westphal. F3D (pronounced /fɛd/) is a VTK-based 3D viewer following the KISS princ

Nov 24, 2022

Total Registry - enhanced Registry editor/viewer

Total Registry - enhanced Registry editor/viewer

Total Registry Replacement for the Windows built-in Regedit.exe tool. Improvements over that tool include: Show real Registry (not just the standard o

Nov 22, 2022

A minimal viable programming language on top of liblgpp

This project aims to implement a minimal viable programming language on top of liblgpp. setup The project requires a C++17 compiler, CMake and liblgpp

Jun 28, 2021

Freeze OS is a cross-platform operating system emulator that runs on top of an interpreter called the Freeze interpreter.

Freeze OS is a cross-platform operating system emulator that runs on top of an interpreter called the Freeze interpreter.

Freeze OS is a cross-platform operating system emulator that runs on top of an interpreter called the Freeze interpreter. The operating system code is basically written in the Freeze programming language that is passed to the Freeze interpreter. The idea is to skip instances where the operating system needs to handle low level operators and focus on higher level stuff, like malware analysis, AI, and others.

May 2, 2022
Comments
  • cannot open file directly

    cannot open file directly

    when running via command like you cannot qoiview <image> this is a small feature but i believe that this would make it alot easier to integrate into desktops as most of the time when you click a file and open with . . . it just runs <program name> <file name> this would make this program a bit easier to use

  • OpenBSD support

    OpenBSD support

    This adds the requisite changes to CMakeLists.txt to get qoiview to run on OpenBSD. No code changes were required.

    Additionally, makes mention of OpenBSD in the README.

  • Sample images appear to have incorrect metadata

    Sample images appear to have incorrect metadata

    Hi there, in a pull request adding QOI support to my image viewer, we encountered an issue with the sample images in this repository. (see https://github.com/Tom94/tev/pull/148)

    It seems like the sample images have the QOI_SRGB channel descriptor, even though their alpha component is linear (and thus should be QOI_SRGB_LINEAR_ALPHA).

    See the following comparison of the dice.qoi image. Interpreting the data as QOI_SRGB_LINEAR_ALPHA reproduces the png from Wikipedia.

Quite OK Image (QOI) format encoder/decoder

This project implements encoding and decoding the "Quite OK Image" (QOI) format in the Ć programming language. Ć can be automatically translated to pu

Nov 5, 2022
An image viewer for 9front

An image viewer for 9front

Nov 30, 2021
Second life for famous JPEGView - fast and tiny viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimalist GUI and base image processing.
Second life for famous JPEGView - fast and tiny viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimalist GUI and base image processing.

JPEGView-Image-Viewer-and-Editor Updated Dec 07 2021. Version 1.1.1.0 has been released. Download link1, link2 added. Second life for famous JPEGView

Nov 4, 2022
SCE kernel headers from PSP firmware 6.60

Official PSP kernel drivers header files SCE devkit version 6.60 has a stub library display_stub.a available for users. Along with stubs, this archive

Dec 27, 2021
The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary

The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary to write programs for the RP2040-based devices such as the Raspberry Pi Pico in C, C++ or assembly language.

Nov 24, 2022
A family of small, fast, and simple bitmap fonts in single-file C headers
A family of small, fast, and simple bitmap fonts in single-file C headers

Blit A family of small, fast, and simple bitmap fonts in single-file C headers [go to repository] These are not intended as a replacement for fancy us

Nov 16, 2022
per - Simple unix permission viewer and converter

Per is a simple utility that can verbosely print unix permissions and convert between symbolic and numeric notations and vice-versa.

Oct 23, 2022
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Nov 22, 2022
DICOM images and volumes viewer with advanced processing infrastructure (WPF, ITK, VTK)

DicomViewer DICOM images and volumes viewer with advanced processing infrastructure Stack: WPF (C#) ITK (C++) VTK (C++) Structure: DicomViewer - WPF a

Sep 8, 2022
SFML-based Mandelbrot viewer program
SFML-based Mandelbrot viewer program

mandelbrot SFML-based Mandelbrot viewer program. Dependencies CMake 3.16 C++17 SFML 2.5 Building cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --bui

Sep 28, 2022