diff --git a/.snapcraft.yaml b/.snapcraft.yaml deleted file mode 100644 index dcf3af94..00000000 --- a/.snapcraft.yaml +++ /dev/null @@ -1,83 +0,0 @@ -name: vips-nip2 -icon: share/nip2/data/vips-128.png -version: 'master' -summary: An image-processing spreadsheet. -description: | - nip2 is half-way between a spreadsheet and a paint program. - It's terrible for retouching photographs, but very handy for automating image - processing tasks. - - It can process multi-gigabyte images efficiently. It has good support for - scientific image formats. It's much faster and more flexible than tools like - ImageJ. - - This snap is git master nip2 built with git master libvips. - -grade: devel -confinement: strict - -apps: - nip2: - command: desktop-launch nip2 - desktop: share/applications/nip2.desktop - plugs: [x11, home, gsettings] - -parts: - vips-part: - source: https://github.com/jcupitt/libvips - source-branch: master - source-type: git - plugin: autotools - build-packages: - - gtk-doc-tools - - gobject-introspection - - intltool - - libgirepository1.0-dev - - libglib2.0-dev - - libfftw3-dev - - libexpat1-dev - - libxml2-dev - - libjpeg-turbo8-dev - - libtiff5-dev - - libopenslide-dev - - libopenexr-dev - - libcfitsio-dev - - libmatio-dev - - libgif-dev - - libpoppler-dev - - librsvg2-dev - - libmagickcore-6.q16-dev - - libexif-dev - - libgsf-1-dev - - liblcms2-dev - - libpng12-dev - - libfontconfig1-dev - - libgdk-pixbuf2.0-dev - - libfreetype6-dev - - libxft-dev - - libcairo2-dev - - libpango1.0-dev - - liborc-0.4-dev - - libwebp-dev - - nip2-part: - source: https://github.com/jcupitt/nip2 - source-branch: master - source-type: git - plugin: autotools - build-packages: - - gobject-introspection - - intltool - - libgirepository1.0-dev - - libglib2.0-dev - - libgtk2.0-dev - - libx11-dev - - libxml2-dev - - flex - - bison - - libfftw3-dev - - libgoffice-0.8-dev - - libgsl-dev - - libgvc6 - after: [desktop-gtk2, vips-part] - diff --git a/ChangeLog b/ChangeLog index 5cdabb36..87c5bebd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +started 8.9.2 22/11/23 +- fix a lockup with comment characters in REPL [MvGulik] + started 8.9.1 15/2/23 - fix build with --std=c99 [Schamschula] diff --git a/README.md b/README.md index f8348a47..3e57bffb 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,27 @@ # nip2 --- a user interface for libvips -[![Snap -Status](https://build.snapcraft.io/badge/jcupitt/nip2.svg)](https://build.snapcraft.io/user/jcupitt/nip2) +We now have a first public test release of nip4, a rewrite of nip2 for the +gtk4 UI toolkit. If you have some time to try it, any feedback would +be very welcome: + +https://github.com/jcupitt/nip4/releases + +## nip2 nip2 is a GUI for the [libvips image processing library](https://libvips.github.io/libvips). It's a little like a spreadsheet: you create a set of formula connecting your objects together, and on a change -nip2 recalculates. +nip2 will recalculate. This makes it convenient for developing image processing +systems since you can watch pixels change as you adjust your equations. + +Because nip2 uses libvips as the image processing engine it can handle very +large images and only needs a little memory. It scales to fairly complex +workflows: I've used it to develop systems with more than 10,000 cells, +analyzing images of many tens of gigabytes. It has a batch mode, so you +can run any image processing system you develop from the command-line and +without a GUI. -[![Screenshot](screenshot.png)](screenshot.png) +![image](https://github.com/user-attachments/assets/aa2c3e0f-9f96-4594-9f1d-62ef770d0775) ## Installing diff --git a/configure.ac b/configure.ac index e3b412c9..ac6a03b4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. -AC_INIT([nip2], [8.9.1], [vipsip@jiscmail.ac.uk]) +AC_INIT([nip2], [8.9.2], [vipsip@jiscmail.ac.uk]) # foreign stops complaints about a missing README (we use README.md instead) # and missing INSTALL (the standard Gnu INSTALL is not very useful) @@ -17,7 +17,7 @@ dnl m4_define([nip_major_version], [8]) m4_define([nip_minor_version], [9]) -m4_define([nip_micro_version], [1]) +m4_define([nip_micro_version], [2]) m4_define([nip_version], [nip_major_version.nip_minor_version.nip_micro_version]) diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 224dfebe..00000000 Binary files a/screenshot.png and /dev/null differ diff --git a/src/dummy.c b/src/dummy.c new file mode 100644 index 00000000..679b26f3 --- /dev/null +++ b/src/dummy.c @@ -0,0 +1 @@ +int poop () {} diff --git a/src/imageinfo.c b/src/imageinfo.c index 2abf10f8..14f70f92 100644 --- a/src/imageinfo.c +++ b/src/imageinfo.c @@ -720,7 +720,6 @@ imageinfo_proxy_add( Imageinfo *imageinfo ) */ g_assert( !imageinfo->proxy ); if( !(imageinfo->proxy = IM_NEW( imageinfo->im, Imageinfoproxy )) ) - if( !(imageinfo->proxy = IM_NEW( NULL, Imageinfoproxy )) ) return; imageinfo->proxy->im = imageinfo->im; imageinfo->proxy->imageinfo = imageinfo; diff --git a/src/ip.h b/src/ip.h index fcb06b56..6cfbbd46 100644 --- a/src/ip.h +++ b/src/ip.h @@ -108,7 +108,6 @@ #endif /*HAVE_SYS_STATVFS_H*/ #ifdef HAVE_SYS_VFS_H #include -extern int statfs(); #endif /*HAVE_SYS_VFS_H*/ #ifdef HAVE_SYS_MOUNT_H #include @@ -202,7 +201,7 @@ extern int statfs(); #define IP_NAME PACKAGE "-" VERSION #define MAX_LINELENGTH (120) /* Max chars we display of value */ #define MAX_RECENT (10) /* Number of recent items in file menu */ -#define NIP_COPYRIGHT "%s: ©2018 Imperial College, London" +#define NIP_COPYRIGHT "%s: ©2023 libvips.org" /* Our stock_ids. */ diff --git a/src/lex.l b/src/lex.l index 9cfc2e93..b960b9b7 100644 --- a/src/lex.l +++ b/src/lex.l @@ -180,7 +180,7 @@ read_char( void ) /* Read string up to \n, EOF. */ - while( (ch = input()) != EOF && ch != '\n' ) + while( (ch = input()) != EOF && ch != '\n' && ch != '\0') ; } diff --git a/src/plot.c b/src/plot.c index 52b7b9cd..fb310939 100644 --- a/src/plot.c +++ b/src/plot.c @@ -375,7 +375,7 @@ plot_class_get( Classmodel *classmodel, PElement *root ) Imageinfo *ii2; IMAGE *t; DOUBLEMASK *mask; - int (*fn)(); + int (*fn)(VipsImage *, VipsImage *); /* nx1 or 1xm images only ... use Bands for columns. */