Giter VIP home page Giter VIP logo

b-sullender / capi Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 6.5 MB

General C/C++ programming library with data algorithms and CPU based image processing

C 76.74% C++ 1.14% Makefile 1.73% Shell 8.48% Roff 0.97% M4 0.27% SAS 0.35% Smalltalk 0.03% WebAssembly 0.30% Assembly 3.15% HTML 0.83% Module Management System 0.33% CMake 0.28% Ada 1.92% Pascal 1.62% C# 1.16% Batchfile 0.01% DIGITAL Command Language 0.59% Perl 0.08%
c cplusplus image images image-processing image-manipulation string strings string-manipulation string-algorithms

capi's Introduction

CAPI

Data and Image processing library for general C/C++ programming. This is a non-specific operating system library designed to integrate into any future operating system and their applications. To keep this library independent, required libraries are built into CAPI

This library ships with the following 3rd party library source code:

jpeg-9d  
zlib-1.2.11  

See the CHANGELOG file for details about any changes to the source code.

Key Features

Cross-platform

  • Windows
  • Linux
  • macOS

Image support

String support

A string type that automatically handles string manipulation, conversion with data variables, and its buffer size.

Simple interface for manipulating strings of encoding types ASCII, UTF8, UTF16 and UTF32. ToString and FromString functions for conversion between data variables and strings, with IEEE 754 support and customization of formatting.

LICENSE TERMS

  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) 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.

Compiling CAPI

Use cmake to build a solution/project for your desired IDE (cmake-gui is tested and recommended)
This project has been tested with the following:

  Visual Studio 2019 (Windows 10, x86, x86-64)
  Visual Studio 2010 (Windows XP, x86, x86-64)
  Unix Makefiles (gcc/g++) (Ubuntu MATE, ARMv7-A ODROID-XU4)
  CodeBlocks - Unix Makefiles (gcc/g++, clang) (Fedora 32, x86-64)
  CodeBlocks - Unix Makefiles (gcc/g++) (Ubuntu 20.04.1, x86-64)
  Xcode (macOS Big Sur) (Graphics not tested, native graphical window will be added)

On Linux and macOS the included TestApp program uses X11 for creating windows with a frame buffer.
See the HELP file for details about setting up a workstation & installing the needed X11 dev package.

Using CAPI

After building the project files, run the included TestApp program to test CAPI.
TestApp has several commands for testing the CAPI library, see the HELP file for details.
You can include CAPI.h and link to CAPI.lib (Linux, libCAPI.so) in your C/C++ projects.
Exported CAPI functions start with capi_ to identify them.
Some wrapper functions (E.g. zpipe.c functions) may not use the capi_ identifier.
C/C++ preprocessors may also use the capi_ identifier for system compatibility.

Contact & reporting problems

Simple "how do i...", "I'm having trouble", or "is this a bug" questions are best asked at Discussions Q&A
Bugs, build problems, and discovered vulnerabilities that you are relatively certain is a legit problem in the code, and for which you can give clear instructions for how to reproduce, should be reported as issues

If confidentiality precludes a public question or issue, you may contact the project leader privately at [email protected]

Contributing

CAPI welcomes code contributions. You can request to be a collaborator at Contribute Request. We take code contributions via the usual GitHub pull request (PR) mechanism. Please see CONTRIBUTING for detailed instructions.

capi's People

Contributors

b-sullender avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

capi's Issues

Color overflow problem when stretching images

capi_DrawImageEx / capi_DrawImageExA has color overflow problem when stretching images beyond a point using the DRAW_RESIZE_BOXSAMP algorithm. You can see this problem when using the following command "stretch big all 160x90" in the TestApp.

Alpha value incorrectly blended

capi_RenderAlphaPixel / capi_RenderAlphaScanLine / capi_RenderAlphaScanLine32 incorrectly blends alpha values for pixels. This becomes a problem when layering images.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.