Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.
/ korim Public archive

Korim: Kotlin cORoutines IMaging, Bitmap and Vector graphics for Multiplatform Kotlin

Notifications You must be signed in to change notification settings

soywiz-archive/korim

Repository files navigation

Korim

Korim

Kotlin cORoutines IMaging utilities for Multiplatform Kotlin

Build Status Maven Version Discord

Support korim

If you like korim, or want your company logo here, please consider becoming a sponsor ★,
in addition to ensure the continuity of the project, you will get exclusive content.

All KOR libraries

Use with gradle:

compile "com.soywiz.korlibs.korim:korim:$korVersion"

Bitmap classes

Bitmap base class + Bitmap8 and Bitmap32. And other fancy bitmaps: BitmapIndexed as base + Bitmap1, Bitmap2, Bitmap4 and BitmapChannel.

Image Formats

Korim provides utilities for reading and writing some image formats without any kind of additional dependency.

PNG, JPG, TGA, BMP, ICO, PSD(WIP) and DDS (DXT1, DXT2, DXT3, DXT4 and DXT5).

Native Image Formats

Korim also allows to use native image readers from your device for maximum performance for standard image formats.

Color Formats

Korim provides color formats to convert easily and fast and to perform mixing, de/premultiplication and other operations quickly.

Vectorial Image Formats

Korim supports loading, rasterizing and drawing vectorial SVG files.

Native vectorial rendering

Korim provides a single interface for vector rendering so you can use a single interface and leverage JavaScript Canvas, AWT's Graphics2D, Android Canvas or any other rasterizer exposed by korim implementations. It also allows to convert shapes into SVG. Korim includes a feature to draw shapes with fills in contact without artifacts in a portable way by multisampling. Useful for offline rasterizers.

AWT Utilities

Korim provides AWT utilities to convert bitmaps into AWT BufferedImages, and to display them. These are just extensions so they are not referenced from the main code. And if you use native image loading, you can display those images as fast as possible without any conversion at all.

Native Fonts

Korim provides native font rendering. You can rasterize glyph fonts on all targets without actually including any font, using device fonts.

TTF Reading and rendering

Korim provides a pure Kotlin-Common TTF reader, and using native vectorial rendering allows you to render glyphs, texts and to get advanced font metrics.

Korio integration

Korim provides korio integration adding VfsFile.readBitmap() that allows Bitmap reading easily and faster (with native implementations) in some targets like browsers.