Giter Club home page Giter Club logo

ndkimage's Introduction

libjepg-turbo+jnigraphics

介绍

翻译一下官网的描述

libjpeg-turbo是一种jpeg图像编解码器,它使用simd指令(mmx、sse2、avx2、neon、altivec)加速x86、x86-64、ARM和PowerPC系统上的Baseline JPEG(标准型)压缩和解压缩,以及x86和x86-64系统上的渐进式progressive JPEG(渐进式)压缩。在这些系统中,libjpeg-turbo的速度通常是libjpeg的2-6倍,其他的都是相同的。在其他类型的系统上,libjpeg-turbo由于其高度优化的哈夫曼编码例程,仍然可以在很大程度上超过libjpeg 。在许多情况下,libjpeg-turbo的性能与专有的高速JPEG编解码器的性能相当。

libjpeg-turbo最初基于libjpeg/simd,这是 Miyasaka Masaru 开发的libjpeg v6b的MMX(多媒体扩展)加速衍生产品。 2009年,在TigerVnc和VirtualGL项目中对编解码器进行了大量改进,2010年初,libjpeg turbo被拆分成了一个独立的项目,其目标是为更广泛的用户和开发人员提供高速的jpeg压缩/解压缩技术。

编译

编译教程:https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md

刚开始我也是用linux编译,使用像下面的编译脚本可以编译成功

#!/bin/bash  
NDK_PATH=/home/shuai/Android/android-ndk-r13
TOOLCHAIN=gcc
ANDROID_VERSION=17
cd libjpeg-turbo-2.0.2

cmake -G "Unix Makefiles" \
 -DANDROID_ABI=armeabi-v7a \
 -DANDROID_ARM_MODE=arm \
 -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
 -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
 -DCMAKE_ASM_FLAGS="--target=arm-linux-androideabi${ANDROID_VERSION}" \
 -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=android/arm-v7a \
 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=android/arm-v7a \

make

后来发现,可以直接在android studio中直接编译通过,真是开心的像廋了10斤一样

新建带jni的Android项目,将libjpeg-turbo整个项目直接拷贝到jni目录下,然后在CmakeLists.txt中加入这个

cmake_minimum_required(VERSION 3.4.1)
add_library(
        native-jpeg
        SHARED
        native-jpeg.cpp)
# 编译子项目(源码路径)        
ADD_SUBDIRECTORY(libjpeg-turbo-2.0.2)

find_library(
        log-lib
        log)
target_link_libraries(
        native-jpeg
        ${log-lib})

build之后妥妥可以拿到动态和静态库

同样的方法,我又编译了libpng的代码

ndkimage's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ndkimage's Issues

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.