{"id":20679190,"url":"https://github.com/ddssingsong/ndkimage","last_synced_at":"2025-04-19T23:49:55.871Z","repository":{"id":126202305,"uuid":"102090228","full_name":"ddssingsong/NdkImage","owner":"ddssingsong","description":"使用ligjpeg压缩图片，附带源码编译","archived":false,"fork":false,"pushed_at":"2019-05-13T04:35:31.000Z","size":11905,"stargazers_count":12,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T23:49:45.852Z","etag":null,"topics":["libjpeg","libjpeg-turbo"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddssingsong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-01T08:12:40.000Z","updated_at":"2024-11-05T10:15:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"fae6009a-91fc-4736-8d1a-de6fd93ed88b","html_url":"https://github.com/ddssingsong/NdkImage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddssingsong%2FNdkImage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddssingsong%2FNdkImage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddssingsong%2FNdkImage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddssingsong%2FNdkImage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddssingsong","download_url":"https://codeload.github.com/ddssingsong/NdkImage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249830846,"owners_count":21331357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["libjpeg","libjpeg-turbo"],"created_at":"2024-11-16T21:24:46.947Z","updated_at":"2025-04-19T23:49:55.865Z","avatar_url":"https://github.com/ddssingsong.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## libjepg-turbo+jnigraphics\n\n#### 介绍\n\n翻译一下官网的描述\n\nlibjpeg-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编解码器的性能相当。\n\nlibjpeg-turbo最初基于libjpeg/simd，这是 Miyasaka Masaru 开发的libjpeg v6b的MMX（多媒体扩展）加速衍生产品。\n2009年，在TigerVnc和VirtualGL项目中对编解码器进行了大量改进，2010年初，libjpeg turbo被拆分成了一个独立的项目，其目标是为更广泛的用户和开发人员提供高速的jpeg压缩/解压缩技术。\n\n\n\n#### 编译\n\n编译教程：\u003chttps://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md\u003e\n\n刚开始我也是用linux编译，使用像下面的编译脚本可以编译成功\n\n```shell\n#!/bin/bash  \nNDK_PATH=/home/shuai/Android/android-ndk-r13\nTOOLCHAIN=gcc\nANDROID_VERSION=17\ncd libjpeg-turbo-2.0.2\n\ncmake -G \"Unix Makefiles\" \\\n -DANDROID_ABI=armeabi-v7a \\\n -DANDROID_ARM_MODE=arm \\\n -DANDROID_PLATFORM=android-${ANDROID_VERSION} \\\n -DANDROID_TOOLCHAIN=${TOOLCHAIN} \\\n -DCMAKE_ASM_FLAGS=\"--target=arm-linux-androideabi${ANDROID_VERSION}\" \\\n -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \\\n -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=android/arm-v7a \\\n -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=android/arm-v7a \\\n\nmake\n\n```\n\n\n\n后来发现，可以直接在android studio中直接编译通过，真是开心的像廋了10斤一样\n\n新建带jni的Android项目，将libjpeg-turbo整个项目直接拷贝到jni目录下，然后在CmakeLists.txt中加入这个\n\n```cmake\ncmake_minimum_required(VERSION 3.4.1)\nadd_library(\n        native-jpeg\n        SHARED\n        native-jpeg.cpp)\n# 编译子项目（源码路径）        \nADD_SUBDIRECTORY(libjpeg-turbo-2.0.2)\n\nfind_library(\n        log-lib\n        log)\ntarget_link_libraries(\n        native-jpeg\n        ${log-lib})\n```\n\nbuild之后妥妥可以拿到动态和静态库\n\n同样的方法，我又编译了libpng的代码\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddssingsong%2Fndkimage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddssingsong%2Fndkimage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddssingsong%2Fndkimage/lists"}