GraphicsMagic 有一个Nodejs的客户端:
https://github.com/aheckmann/gm
简直就是nodejs处理图片的神器呀!
但是使用它之前必须得安装GraphicsMagic,于是开始了痛苦的折腾之旅.
开源系统或者组件就是这样,编译安装一个东西,同时又依赖别的组件,又要编译、安装... 真的很蛋疼...
GraphicsMagic根据使用功能的不同,依赖不同的组件,我需要的只是对jpeg和png进行简单的图片处理(缩放、裁剪啊什么的,不过它的功能可以更加强大),主要依赖了两个组件:
首先必须先下载以上的两个组件,然后解压,然后./confiure 然后sudo make&make install
接着就可以安装GraphicsMagic了:
到这里选择你需要的版本并下载。然后解压。在解压的目录里运行:
./configure CC=clang make sudo make install
注意confiure命令后面的CC=clang。它指定了编译器为Mac下推荐使用的clang。如果没有这个参数,Makefile将会使用系统默认的编译器进行编译,而这个编译器不是GraphicsMagic所推荐的,并且在make的过程中会出现以下错误:
Undefined symbols for architecture x86_64: "___builtin_object_size", referenced from: _BlurImageScanlines.omp_fn.6 in libGraphicsMagick.a(magick_libGraphicsMagick_la-effect.o) _XShearImage.omp_fn.0 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o) _YShearImage.omp_fn.1 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o) ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[1]: *** [utilities/gm] Error 1 make: *** [all] Error 2
切记要在confiure的时候./configure CC=clang 呀,这个是哥血泪摸索出来的经验,希望奉献出来让大家少走弯路。
好,npm install gm
然后写一段nodejs的代码测试一下:
var gm = require('gm'); gm('./test.jpg') .size(function(err, image){ console.log(image.width, image.height); });
相关推荐
今天编写一个简单的代码,报错了: ... for (uint32_t i = 0; i < SIZE; ++i) { _data[i] = new T[SIZE]; } } inline const uint32_t size() const { return SIZE; } T* operator[](uint32_
在iOS应用开发中,"Framework not found IOSurface for architecture arm64" 是一个常见的构建错误,这通常发生在尝试编译或运行项目时,系统无法找到指定的架构(arm64)所需的IOSurface框架。该问题可能由多种原因...
注意,如果你在编译过程中遇到“Undefined symbols for architecture x86_64”的错误,这通常意味着缺少某些库。在这种情况下,你需要找到相应的库并安装,或者查阅错误信息以获取解决方案。 整个编译过程可能需要...
gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。 可用于交叉编译64-bit Armv8 Cortex-A, little-endian目标中的裸机程序、u-boot、Linux kernel、...
这个压缩包“x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z”包含了MinGW针对x86_64架构的64位版本,版本号为8.1.0。让我们深入了解MinGW以及这个特定版本包含的内容。 首先,GCC是GNU项目的核心组成部分,它支持...
gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译32-bit Armv7 Cortex-A, hard-float, little-endian目标中的裸机程序、u-boot、Linux ...
标题 "x86_64-8.1.0-win32-seh-rt_v6-rev0.zip" 暗示的是一个针对x86_64架构的MinGW-w64工具链的发行版,版本号为8.1.0,用于在Windows 64位操作系统上编译C和C++源代码。这个压缩包是专门设计来生成64位Windows可...
标题 "x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z" 暗示这是一个针对x86_64架构的编译工具链的打包文件,主要用于Windows平台。这种工具链通常包括编译器、链接器以及其他构建C++应用程序所需的组件。...
redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...
标题中的“gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz”指的是一款由Linaro组织提供的GCC(GNU Compiler Collection)交叉编译器,版本号为6.3.1,发布于2017年5月。这个版本是针对x86_64架构的主机...
在Linux环境中安装Oracle 11g时,会遇到一些特定的依赖性问题,其中之一就是"compat-libstdc++-33-3.2.3(x86_64)"。这个软件包是Oracle 11g在Linux系统上的一个重要先决条件,它的作用在于提供与Oracle二进制文件...
"x86_64_aarch64-linux-gnu"部分表示这是为64位的x86架构系统提供的,用于构建目标平台为Aarch64(也称为ARM64或AArch64)架构的Linux系统。"tar.xz"表明这个包是以tarball格式压缩的,并且使用XZ压缩算法。 描述中...
总之,GCC-Linaro 7.5.0-2019.12-x86_64_aarch64-linux-gnu交叉编译链是开发ARM64设备的有力工具,它使得开发者能够在强大的X86_64系统上完成对ARM设备软件的构建,从而简化流程,提高开发效率。理解和熟练使用交叉...
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...
《深入理解arm-linux-gnueabihf交叉编译工具链——以gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf为例》 在软件开发领域,尤其是嵌入式系统开发中,交叉编译是一项至关重要的技术。它允许我们在一台强大的...
/usr/bin/ld: common/ipc.o: relocation R_X86_64_32S against `cmd_handler' can not be used when making a shared object; recompile with -fPIC common/ipc.o: could not read symbols: Bad value
rpm -ivh sshpass-1.06-2.el7.x86_64.rpm 安装即可用
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...