标签: vips

安装Sharp /usr/include/vips/vips8:35:25: 致命错误:glib-object.h

我正在尝试在 Ubuntu 16.04 LTS 上安装Sharp。

我原本没有vips,所以我安装了

    sudo apt-get install libvips-dev
Run Code Online (Sandbox Code Playgroud)

这修复了第一个错误,但现在我遇到了另一个错误:

    In file included from ../src/common.cc:25:0: 
    /usr/include/vips/vips8:35:25: fatal error: glib-object.h: No such file or directory
    compilation terminated.
    sharp.target.mk:115: recipe for target 'Release/obj.target/sharp/src/common.o' failed
    make: *** [Release/obj.target/sharp/src/common.o] Error 1
    make: Leaving directory '/home/rachel/node_modules/sharp/build'
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack   at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269:23)
    gyp ERR! stack     at emitTwo (events.js:87:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) …
Run Code Online (Sandbox Code Playgroud)

ubuntu glib npm vips sharp

12
推荐指数
1
解决办法
6690
查看次数

使用 libvips 重新缩放图像

我有一个图像,6130x5548 pixels我想重新缩放它,以便最长的一边是32768 pixels(然后做一个具有 7 个缩放级别的瓷砖金字塔)。我不明白vips resize是这样的事情的明显方式,因此我尝试了下面的行

vips resize image_in.tif img_rescaled.tif 5.345513866231648
Run Code Online (Sandbox Code Playgroud)

数字5.34551只是比率32768/6130,沿 my 的比例因子x axis。如果我想指定返回图像的像素的确切尺寸,我该怎么做?

我试图vips thumbnail用于此目的,我不知道是否推荐这样做,但它确实有效。

vips thumbnail image_in.tif img_rescaled.tif 32768
Run Code Online (Sandbox Code Playgroud)

请问这样可以吗?

此外,这两种方法在 MB 大小方面给出了完全不同的输出。虽然vips thumbnail产生了tif与尺寸2.8Gbvips resize调用返回一个tif与大小1.8Gb

这两个图像有(显然)相同尺寸32768x29657 pixels,相同的分辨率72dpi,但不同bit depthtif距离 vips thumbnail24 bit depth,而从一个vips resize 16 bit depth。原图有bit depth=16 …

image-processing vips

6
推荐指数
1
解决办法
2402
查看次数

使用 pyvips 调整大小到特定高度和宽度

我找到了这个答案,我想使用 pyvips 来调整图像大小。在提到的答案和官方文档中,图像按比例调整大小。但是,我想将图像大小调整为特定的高度和宽度。有没有办法用 pyvips 来实现这一点?

python image-processing vips

6
推荐指数
1
解决办法
2607
查看次数

Ruby-vips图像处理库.有没有好用的例子?

我对图像处理完全陌生.我对JPEG内部及其工作原理一无所知.

我想知道,如果我能找到一些执行以下简单操作的ruby代码:

  1. 打开jpeg文件.
  2. 迭代每个像素并将其颜色设置为fx绿色.
  3. 将结果写入另一个文件.

我特别感兴趣的是如何使用ruby-vips库来实现这一点
https://github.com/ender672/ruby-vips

我的目标 - 学习如何使用ruby-vips执行基本图像处理操作(伽马校正,亮度,色调......)

任何链接到比'hello world'更复杂的工作示例 - 就像在ruby-vips的github页面上一样,将非常感谢!

如果有ruby-vips的替代品,我也会感谢他们.


UPDATE

自从我问这个问题以来发生了很多事情:

ruby image-processing vips

5
推荐指数
1
解决办法
2291
查看次数

(Py)Vips vs Pillow 提升图像质量

将图像大小调整为 200% 会产生 Pillow 和 pyvips 之间的质量差异。

虽然 Pillow 在再现方面非常准确,但 vips 夸大了噪音和对比度。

我需要对非常大的图像使用vips,但质量并不令人满意。知道如何从贵宾那里获得更好的升级吗?(从我收集到的文档中,升级对 VIP 来说并不是那么重要,而且大多数人的想法都在缩减)。

例子:

from PIL import Image
import pyvips
import numpy as np

#Vips
img = pyvips.Image.new_from_file("mypic.jpg", access='sequential')
out = img.resize(2, kernel = "linear")
out.write_to_file("mypic_vips_resized.tif")

#Pillow
img = np.array(Image.open("mypic.jpg"))
h, w = img.shape[:2]
out = Image.fromarray(img,mode="RGB")
out = out.resize((w*2,h*2), Image.BILINEAR)
out.save("mypic_PIL_resized.tif", format='TIFF', compression='None')
Run Code Online (Sandbox Code Playgroud)

原来的:
原来的
枕头:
枕头
贵宾:
贵宾

抽象示例(10*10 像素)

原来的:
原来的
枕头双线性:
枕头双线性
Vips 线性:
Vips 线性

python python-imaging-library vips

5
推荐指数
1
解决办法
1529
查看次数

从图像文件中提取感兴趣区域而不读取整个图像

我正在寻找一个能够读取图像文件(任何格式)的某个区域而无需首先读取整个图像文件的库(任何语言)。

我遇到过一些选项,例如 vips,它确实不会将整个图像保留在内存中,但似乎仍然需要从头开始完整读取它。

我意识到这可能不适用于 jpeg 等压缩格式,但理论上听起来 bmp 或 tiff 应该允许这种类型的读取。

image image-processing itk vips

4
推荐指数
1
解决办法
3284
查看次数

使用 pyvips 连接多个巨大图像

我试图弄清楚如何通过 python 将多个图像与 vips 结合起来。我在一个文件夹中有 30 个(但可以超过 600 个)条纹 png 文件,它们的分辨率为 854x289920(所有分辨率都相同)...

如果我尝试使用 MemmoryError 将它们水平连接在一起,Python 中的 PIL 将立即失效。所以我到处搜索,发现 VIPS 可以做我需要加入图像并根据结果制作深度缩放图像的两件事。

不幸的是我不知道如何在 python 中正确地水平连接它们。

我在数组中有一个来自文件夹的图像列表,但是我如何循环遍历它们并按顺序将连接的图像写入磁盘?

python image image-processing vips

4
推荐指数
1
解决办法
3593
查看次数

libvips 旋转在设备上没有留下任何空间

我正在使用 libvips 来旋转图像。我正在使用具有 3002 MB Ram 和 512MB 临时存储的 VM。AWS Lambda 机器。

我运行旋转图像的命令是

vips rot original.jpg rotated.jpg d90
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误

Exit Code: 1, Error Output: ERROR: wbuffer_write: write failed unix error: No space left on device
Run Code Online (Sandbox Code Playgroud)

jpg 图像大约为 10Mb。

image-processing vips

3
推荐指数
1
解决办法
960
查看次数

Vips - 在 Ruby 中调整大小后在图像顶部添加文本

我正在使用 Vips 通过 Shrine 调整图像大小,希望可以使用 Vips 库在图像顶部合并一层文本。

ImageProcessing::Vips.source(image).resize_to_fill!(width, height)
Run Code Online (Sandbox Code Playgroud)

这段代码效果很好,如何在 resize_to_fill 之后添加一层文本?

目标是用白色文本编写“Hello world”,并在图像中心放置 CSS 文本阴影。

我试过写这样的东西,但到目前为止我只收到错误:

Vips\Image::text('Hello world!', ['font' => 'sans 120', 'width' => $image->width - 100]);
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails imagemagick ruby-on-rails-5 vips shrine

3
推荐指数
1
解决办法
1107
查看次数

将 libvips 添加到 Rails 7 Docker 镜像

我是 Docker 新手,正在尝试为这个新的 Rails 7 应用程序创建一个 Dockerfile。我使用 vips 而不是 imagemagick 来提高内存。

我的本地机器是 Mac,因此brew install vips可以处理我的非 docker 开发流程,但使用 ruby​​-vips gem 或从源代码安装的情况不太好。

运行$ docker compose up结果为:

/usr/local/bundle/gems/ffi-1.15.5/lib/ffi/library.rb:145:in block in ffi_lib': Could not open library 'vips.so.42': vips.so.42: cannot open shared object file: No such file or directory. (LoadError)
Run Code Online (Sandbox Code Playgroud)

使用以下 docker-compose.yml:

version: "3.9"
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker docker-compose vips

3
推荐指数
1
解决办法
3259
查看次数