将ppm图像管道化为eog图像查看器无法正常工作

时间:2015-04-19 15:27:16

标签: c++ linux ubuntu image-processing pipe

我正在使用C ++开发一个图像处理项目。要显示我想要使用默认ubuntu图像查看器(eog)的图像。我的Image16类中有函数可以读写PPM文件。我知道这些工作,因为我可以将它们写入硬盘,然后用eog打开它们。但是我不想将图像写入硬盘,因为我有一个SSD,每个图像大约100 Mb。我想直接将图像数据传输到eog中。然而,这会产生错误,我不确定原因。

ifstream in("/home/chase/Desktop/moon.ppm");
Image16 img = Image16::read_ppm(in);
in.close();

FILE* f = popen("eog /dev/stdin", "w");
img.write_ppm(f, 255);
pclose(f);

enter image description here

我设法让它与imagemagick显示和feh一起工作,但我真的不喜欢那些程序。我想尽可能使用eog。

1 个答案:

答案 0 :(得分:0)

如果您真的坚持使用eog,则可以将其包装。例如,粗略的bash函数

import React from 'react';
import { useLocation } from 'react-router-dom';

// Active the Link on two URLs

export default () => {

    // extract pathname from location
    const { pathname } = useLocation();

    return (
        <li className='Navigation__list-item'> 
            <NavLink 
                to="/events" 
                isActive={() => ['/events', '/myevents'].includes(pathname)} >
                Events 
            </NavLink> 
        </li>
    );
};