Giter Site home page Giter Site logo

blumia / pineapple-pictures Goto Github PK

View Code? Open in Web Editor NEW
336.0 9.0 44.0 828 KB

A homebrew lightweight image viewer.

Home Page: https://sourceforge.net/projects/pineapple-pictures/

License: MIT License

QMake 2.17% C++ 89.58% CMake 7.69% HTML 0.57%
image-viewer photo-viewer qt cross-platform lightweight

pineapple-pictures's Introduction

Yet another image viewer.

CI Build Status
Windows Build Windows build status
macOS Build macOS CI
Ubuntu Build Ubuntu CI

Pineapple Pictures - Main Window

Summary

Pineapple Pictures is a lightweight image viewer that allows you view JPEG, PNG, GIF, SVG, PSD, KRA, XCF, TGA, AVIF and some other frequently used image formats files quickly and easily, and also provide a Stay-on-Top window setting that allows you pin the window so you can use it to pin a reference image at the top and then you can work with other software.

Get it!

Help Translation!

Translate this project on Weblate!

Build it manually:

Current state, we need:

  • cmake: as the build system.
  • qt5 with qt5-svg and qt5-tools: since the app is using Qt.
  • libexiv2: able to display more image metadata. (optional, but recommended)

Then we can build it with any proper c++ compiler like g++ or msvc.

Building it just requires normal cmake building steps:

$ mkdir build && cd build
$ cmake ..
$ cmake --build . # or simply using `make` if you are using Makefile as the cmake generator.

After that, a ppic executable file will be available to use. You can also optionally install it by using the target install (or simply make install in case you are using Makefile). After the build process, you can also use cpack to make a package.

The project will try to build with exiv2 when it's available at build time, if you would like to build the project without exiv2, pass -DEXIV2_METADATA_SUPPORT=OFF to cmake. The project will also not use exiv2 if it's not found, the EXIV2_METADATA_SUPPORT option can be useful if you have exiv2 but specifically don't want to use it.

Image formats supports rely on Qt's imageformats plugins, just get the plugins you need from your distro's package manager will be fine. For Windows user, you may need build and install the imageformats plugin manually, read the content below.

Note Although there is a pineapple-pictures.pro file which can be used for QMake build, it's only for testing purpose and it doesn't have exiv2 support included. Using QMake to build this project is NOT supported, please use CMake if possible.

Linux

Just normal build process as other program will be fine. Nothing special ;)

For Archlinux there are also a PKGBUILD you can use.

For packaging to debian-based distro, the CMakeLists.txt provides some cpack configurations for generating a .deb package. After the build process, use cpack -G DEB to generate the package. You can also take .github/workflows/ubuntu.yml as a reference.

For this project, DEB is the only supported cpack generator in current state, feel free to submit a PR if you like improving cpack support for this project.

Windows

The normal build steps for Linux is also applied to Windows, but since Windows doesn't have a decent package manager, so if you need any other image formats support other than the supported formats which Qt provided, you need to get and build these imageformats plugins manually and vendor it. It's optional and can be skipped if you don't need extra image formats support.

For the Windows binary I provided, kimageformats plugin is used (for formats like kra, xcf, psd and etc.). You can take appveyor.yml as a reference to learn what I did when building the Windows binary.

KDE Craft environment also can be used to build and package this program. I did also created a blueprint for building this project that you can found it at here. It's not the way I used to create the release binary, but still worth trying.

macOS

I don't have a mac, so no support at all. There is also a GitHub Action (see .github/workflows/macos.yml) running macOS build though so at least it can build. Feel free to submit a PR if you would like to give some love to the macOS build ;P

License

Pineapple Pictures as a whole is licensed under MIT license. Individual files may have a different, but compatible license.

pineapple-pictures's People

Contributors

blumia avatar chirs241097 avatar comradekingu avatar felixonmars avatar fhiutc avatar genesistoxical avatar lisapple avatar lovelyblack avatar weblate avatar wineee avatar xmuli avatar yyc12345 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pineapple-pictures's Issues

WIN7系统图片无法关联使用这软件默认打开

作者朋友你好:
我是**的一个用户,
您的这个软件做的相当好,耗费内存很小,切换速度也很快,
看得出您是非常用心研发了,对你表达感谢、赞美和钦佩!
我反映1个情况:

我的WIN7-64位操作系统,日常使用:
最新、最先进的的3种类型的.jxl(JPEG XL) .avif .webp2 以及.webp 格式图片,
和经典的.png .jpg .gif 三种图片格式,

但是现在的 Pineapple Pictures Pineapple Pictures 无法 关联系统 的图片类型 设置为 双击鼠标左键 默认使用 这软件 打开,
在图片文件上 鼠标右键 选择 打开方式,选择 Pineapple Pictures Pineapple Pictures 的文件夹主程序,依然无效,
以后版本可否改进成:可以 顺利关联,设置为 鼠标左键双击图片 默认使用本软件打开?

启动速度优化

除了打开图片的速度略卡,其他都好。优化好启动速度,是理想中的看图软件。

Cannot display images under WSL2 network location properly

When try to double-click image under WSL2 network location with path like \\wsl$\Ubuntu\home\username\filename.png, it will says "File is not a valid image".

When passing such path string to QUrl, it will drop the wsl$ hostname since the name is invalid. Unsurprisedly according to microsoft/WSL#4722 and dotnet/runtime#36595 .NET's System.Uri also describing network resource \\wsl$\ is invalid.

According to dotnet/runtime#36595 (comment) the WSL team is considering change of the name (as it violates spec), but before that happend, we can have a workaround fix for that, since wsl$ is still in used now and we don't know when the hostname change will happened and other application like GIMP and also Intellij IDEA can load files under network location like that properly.

Switch to metainfo.xml for AppStream support

https://appstream.debian.org/sid/main/issues/pineapple-pictures.html

  • no-metainfo
    This software component is missing a MetaInfo file to provide metadata about it.

https://freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location

Important: Legacy Path

AppStream tools scan the /usr/share/appdata/ path for legacy compatibility as well. It should not be used anymore by new software though, even on older Linux distributions (like RHEL 7 and Ubuntu 16.04 LTS) the metainfo path is well supported. Support for the legacy path will likely be dropped completely with a future AppStream 1.0 release.

https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/

appdata.xml files
For historical reasons, AppStream specification also allows using extension .appdata.xml for GUI applications.

https://freedesktop.org/software/appstream/docs/sect-Metadata-Application.html#spec-appdata-introduction

While desktop-application metadata is commonly stored in /usr/share/metainfo/%{id}.metainfo.xml (with a .metainfo.xml extension), using a .appdata.xml extension is also permitted for this component type for legacy compatibility. AppStream implementations will recognize either file type, as long as it ends up in the right location on the filesystem.

  • Use .metainfo.xml extension
  • Run check to ensure content is valid. appstream-util validate-relax --nonet xxxxxx.metainfo.xml

窗口拖动

在查看放大后的图片时,无法拖动窗口,希望改善

Adopting NSIS to build installation package

With help of NSIS you can easy to configure and build installation package for this on Windows, and the program would be easy to uninstall at Control Panel. The package could gain options to let user choose to install either into Program Files folder or as portable mode, also allows user to add file assosiations.

First test feedback: TIFF auto-load support

Hello and congratulations for what seems a really promising picture viewer.
I just made the first tests on Windows (W7 and W10) and I'd like to share a short feedback.

A) directory with tiff files case:

  • pictures open but no left and right arrows appear to scroll to the previous/next tif.

B) directory with jpg files case:

  • left/right arrows work correctly
  • If I try to open the directory itself I get "file is not a valid image"

C) directory with mixed tiff and jpg files case.

  • opening a jpg only jpgs are "browsable"
  • opening a tiff now shows the arrows. All jpgs are "browsable" together with that single tiff image. No other tiff images shows up.

Wishlists, besides the current tiff issues :

  • Enable dir paths as command line parameters for those paths containing pictures
  • Enable rotate counter-clockwise button
  • Enable persistent rotation setting for those directories where all pictures are rotated (it might be a toggle setting lasting for a single run of the exe ?)

Thanks and have a nice day,
V.

无法打开图片Size比较大的图片

这边做了一个拼图 (Size: 282M 和 2G 的图片)
Format: JPG
Resolution: 24480x49152 96dpi 24bit
Size比较大的图片都不能打开, 软件显示 “图像数据无效或暂未支持”

软件版本:0.4.2-0-gdeed477
操作系统: Win10

功能建议:增加默认按实际尺寸1:1来打开图片

感谢在最新版本中将系统任务栏图标增加显示图片名称!
想再提个建议:
可否增加选项,让图片打开时直接以实际尺寸1:1来显示,或者当打开图片并且点击了1:1实际大小的选项,下次打开其他图片都会默认以实际尺寸来显示。这对大图非常实用,目前的设置每次打开大图都不是最清晰的,必须点选1:1选项才会变清晰。
望采纳,谢谢!

功能建议:暂停 gif 或 gif 逐帧播放

1,希望支持暂停gif,或者显示gif帧数,如果能逐帧播放gif就更好了。
2,图片放大超过窗口时,窗口就不能移动了,希望窗口上边留出一条区域用来移动窗口。

这个软件我太喜欢了,放大不加模糊实在是太难得,谢谢大佬。

Suggested additions: custom shortcuts

Hello! I am a loyal user, thank you for your very good content.
Suggested additions.

  1. When zooming an image, the image will scale with the size of the window
  2. Want to add custom shortcuts

dynamic window size / maximize default option / mid-click toggle original size

Thanks for your work.
This lightweight app reminds me a convenient time with google picasa couples of years ago.

Wish it could have these features:

  1. dynamic window size based on pic. If pic size is too large, resize it to fit screen based on width/height/view port.
  2. option to toggle “maximize” as default whilst open a pic.
  3. mid-click to toggle pic's original size (for large and long screenshot pics), then explore from top part, holding right-click to scroll up/down left/right. Then it would be easy to view a large/long pic. (For small pic, mid-click will resize it to view port size)

I'm now using Vieas (a lightweight pic viewer which is obsoleted for years too),
though it has some issues such as opening large webp file error.

Hope one day Pineapple-pictures can be better than Vieas.
Thanks for your work again.

File name caption feature

It would greatly help to be able to see the name of the currently visualized file: sometimes you have different versions or resolutions of a same image and it would be useful to know which one you're looking at. Maybe the feature is already available but I couldn't find a way to trigger the show-up of the file name (or the number in the list of cached files).
It might be just a menu option or an hotkey that triggers the showing of some file properties (like IrfanView does with "i" hotkey) ?

advices

1.Think completely and work and that thinking should be done at once,do like this when writing also ,as little thinking causes mistakes.

2.think of each bit of how it can be improved but don't add useless and unnecessary features

3.Increase patience

4.do important work first

5.If u can't reproduce a bug normally then test thoroughly and try to reproduce for 2,3 times.

6.As far as possible try to reproduce bugs in win10 64bit as most of the users in the world use win10

  1. don't use win11 for reproducing bugs as it's new and buggy,it takes many years by microsoft to fix basic issues.(read twice)

8.also make the app look very beautiful by using beautiful taskbar icon's etc..

license contradiction

The project is released under MIT license but the file dist/appstream/net.blumia.pineapple-pictures.appdata.xml says <project_license>GPL-3.0+</project_license> which is contradicting the main project license and is confusing. Can you please check and fix it..

能否增加一键直接文件关联的功能?

我有个别大图,试了好几个比较知名的看图软件,都会失败,唯独你成功了。
而且半透明的背景和无边框模式我特别特别的喜欢!非常想作为默认看图软件。
但是似乎不能主动进行文件关联,貌似只能通过鼠标右键改变文件打开方式来曲线救国?

能否在软件内直接添加一键文件关联功能?

Portable Mode

Currently (as of version 0.5.2) Pineapple Pictures saves it few settings in AppData:

C:\Users\User\AppData\Local\Pineapple Pictures\config.ini

My suggestion- when Pineapple Pictures starts it checks its program folder (where is the executable- ppic.exe) for configuration file (config.ini) and if it is there the program should use it loading settings from it and saving settings to it, not writing to AppData. Thus the program would be fully and truly portable not writing outside of its folder so that the users would be able to carry it on an USB stick or on an external hard drive with its settings.

Portable mode offers several advantages:

  • backup - portable programs can be easily backed up on external drives in case disaster strikes- hardware failure or OS failure;
  • mobility - portable programs can be easily transferred from machine to machine with all their data and settings;
  • testing - portable mode facilitate testing- one can test different versions (stable, alpha, beta) with different settings or even use multiple instances of one and the same version with different settigs since settings are isolated;

I suppose that this feature will be easy to be implemented.

Option to turn off window transparency

Feature request: Option to turn off window transparency.
Window transparency is probably useful in some use cases, but when viewing images with transparency (PNG, SVG...), the desktop is visible through them.

Rotation UI proposals

Hello,
this pineapple-pictures is a really promising tool as I mentioned in another thread.

In my opinion its user experience might be improved by bi-directional rotation and rotate lock options (either by GUI buttons or by hotkeys). Here a little bit of brainstorming to see if any suggestion would find your appreciation :-)

The already available cw (clockwise) rotation button might become a toggle button so that, if any rotation is kept selected (e.g a last click longer than 500ms) the button indicates that the rotation is permanent (for that single session). Eg: clicking once the rotation button (90°) and clicking a second time while keeping the button pressed longer (rotate lock) keeps a rotation of 180° for the currently open instance. The user might see the rotation button "toggled" as a memo that the rotation lock option is set. One single extra click would unlock the rotation for the current instance and return to normal behaviour.

An optional ccw (counteclockwise) rotation button might show up if selected in a configuration ini file and give the opportunity to reproduce the same behaviour as before but in the opposite direction.
The ini file might also enable/disable the rotation lock option mentioned before for "advanced" users.

For the hotkeys proposals I just downloaded the old tool Artsage and took a snapshot. Artsage is not supported since long time and it cannot visualize all the images formats available but it implemented several features which were really useful. Even without GUI changes the hotkeys would help the ergonomics of your really nice tool.

Rotate Ideas

Cheers,
V.

hidpi support

The application does not seem to fully support hidpi displays on Windows. It appears as a tiny window with super small fonts and icons.

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.