Commit Graph

54 Commits

Author SHA1 Message Date
Lovell Fuller 3ad7363104 heifsave: add option to control subsample_mode
Defaults to no subsampling when Q>90 for consistency with jpegsave.

Deprecate VipsForeignJpegSubsample enum, replace with more generic
VipsForeignSubsample.
2021-01-13 10:01:34 +00:00
John Cupitt fcaba0e6ba add @profile to webpsave
small tiffsave fixes too
2020-07-18 14:49:37 +01:00
John Cupitt 0a23bf3578 revise formatting, add docs
fix up some formatting from https://github.com/libvips/libvips/pull/1552

plus some other small changes
2020-02-18 17:37:56 +00:00
elad laufer 1db2f4731c - fix comment 2020-02-18 18:21:21 +02:00
elad laufer 8749871c71 - remove no_subsample from inner calls 2020-02-18 18:04:29 +02:00
elad laufer 41d79415b9 - argument deprecation flag
- styling
2020-02-18 13:31:58 +02:00
elad laufer 408f3b08ce - simplified subsampling selection by setting subsample_mode=VIPS_FOREIGN_JPEG_SUBSAMPLE_OFF when no_subsample=1 2020-02-18 10:54:46 +02:00
elad laufer d2b794ec35 - use a single enum and switch that replaces no_subsample, force_subsample 2020-02-17 11:29:57 +02:00
elad laufer c626c9de14 add force subsample argument that overrides the Q deduced subsampling directive 2020-02-16 18:37:32 +02:00
John Cupitt eebc6e5636 remove some dead code 2020-01-21 08:27:17 +00:00
John Cupitt 63d54e5df2 final code cleanups after stream -> source rename 2019-12-30 14:23:51 +00:00
John Cupitt 119dd2cb72 pytest passes again after stream -> source/target 2019-12-29 23:08:33 +00:00
John Cupitt 4c5873809f experiment with renaming stream
rename as VipsConnection, VipsSource, VipsTarget etc.

see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619

renamed with this script:

```

set -e

edit() {
        sed -i -E "$1" rename
}

for i in $*; do
        cp $i rename

        edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
        edit s/VIPS_STREAMO/VIPS_TARGET/g
        edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
        edit s/VIPS_STREAMI/VIPS_SOURCE/g
        edit s/VIPS_STREAM/VIPS_CONNECTION/g

        edit s/vips_streamou/vips_target_custom/g
        edit s/vips_streamo/vips_target/g
        edit s/vips_streamiu/vips_source_custom/g
        edit s/vips_streami/vips_source/g
        edit s/vips_stream/vips_connection/g

        edit s/VipsStreamou/VipsTargetCustom/g
        edit s/VipsStreamo/VipsTarget/g
        edit s/VipsStreamiu/VipsSourceCustom/g
        edit s/VipsStreami/VipsSource/g
        edit s/VipsStream/VipsConnection/g

        # eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
        edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
        edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
        edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"

        edit s/streamou/target_custom/g
        edit s/streamo/target/g
        edit s/streamiu/source_custom/g
        edit s/streami/source/g

        # various identifiers which also change
        edit s/is_a_stream/is_a_source/g
        edit s/find_load_stream/find_load_source/g
        edit s/find_save_stream/find_save_target/g
        edit s/new_from_stream/new_from_source/g
        edit s/write_to_stream/write_to_target/g
        edit s/vips_thumbnail_stream/vips_thumbnail_source/g

        # eg. vips_webpload_stream
        edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"

        # eg. vips_webpsave_stream
        edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"

        mv rename $i
done
```
2019-12-29 21:40:21 +00:00
John Cupitt 562da3e5ab rename new_from_filename as new_from_file
So VipsStreami matches VipsImage. Same for new_to_filename.
2019-11-22 17:13:20 +00:00
John Cupitt f5a4f41edf rename VipsStream* variables
The convention is now:

	VipStreami *streami;

We had `input` in many places, a left-over from the old VipStreamInput
name.
2019-11-11 09:09:34 +00:00
John Cupitt 53f73881f7 rename streamo constructors
Was vips_streamo_new_from_filename(), renamed as
vips_streamo_new_to_filename(). Same for descriptor and memory.
2019-11-07 16:20:12 +00:00
John Cupitt ee3270f8e9 more refactoring 2019-10-22 11:08:54 +01:00
John Cupitt d991b73ac5 jpegsave_stream mostly done
$ vips jpegsave_buffer x.jpg

doesn't work though -- need to rethink how output blobs are made
2019-10-11 18:17:42 +01:00
John Cupitt 0b57e2cdc2 note mozjpeg settings in docs
see https://github.com/libvips/libvips/issues/1422
2019-09-11 09:29:43 +01:00
John Cupitt 98f3bf78a5 fix doc spelling of "optimise" 2019-08-06 14:46:43 +01:00
John Cupitt f768029298 make the savers use profile_load
tiff, jpeg and png save all use profile_load to attach profiles
2019-01-11 06:30:06 +00:00
John Cupitt 77287a938f fix misspelling of IPTC as IPCT
the letters have been accidentally swapped for years

add a compat macro so older code still works
2017-12-31 10:23:27 +00:00
Alistair Thomas 0506c49444 Update GObject introspection annotations for libvips/foreign directory 2017-09-26 23:39:06 +01:00
John Cupitt c90b8be0b8 add tiffsave_buffer
add tests

also some cleanups to foreign include files

see https://github.com/jcupitt/libvips/issues/417
2016-10-15 12:29:14 +01:00
John Cupitt e601fad38b small doc fixes 2016-09-07 21:26:59 +01:00
John Cupitt 4c1e6dd023 turn off chroma subsample for Q > 90
see https://github.com/jcupitt/libvips/issues/482
2016-07-09 18:49:22 +01:00
John Cupitt 7a91eaa583 tiff save converts for jpg in jpg mode
when jpg compression is on, tiffsave now converts the input image for
jpg save ... previously, it would try to send a tiff-formatted image
(eg. perhaps with an alpha channel, or float data), which would fail

see https://github.com/jcupitt/libvips/issues/449
2016-05-31 22:04:07 +01:00
John Cupitt d51911cda8 fix up orientation docs
document the new orientation system

various tiff/jpeg doc fixups too
2016-05-28 11:17:17 +01:00
John Cupitt 50468a07a2 clean up foreign
various cosmetic changes:

- pngsave_buffer now uses Write, not WriteBuf, same change for
  radsave_buffer

- move C wrappers out to class defs from foreign.c

- use g_free() not vips_free() for buffer free from low-level savers

- fix var names in some comments

- various style changes for radiance.c
2016-05-24 10:57:02 +01:00
Felix Bünemann c5fa0e1feb Add mozjpeg quant_table option to jpegsave
This allows to choose from several predefined quantization tables when
libvips is compiled against mozjpeg 3.0+.
Tuning the quantization table helps to improve file size in the higher
quality range and avoid artefacts in the lower range.
2016-05-07 03:13:52 +02:00
John Cupitt 01025328da fix some cppcheck warnings
try:

$ cppcheck -f --enable=warning,performance,portability -j4 . 2> err.txt

there are still some left, see:

see https://github.com/jcupitt/libvips/issues/331
2015-09-28 22:01:15 +01:00
Lovell Fuller 00e27def8e Expose new/forthcoming features of mozjpeg/libjpeg-turbo
Runtime detection via JPEG extension parameters
Compile-time detection via J_BOOLEAN_PARAM of jpeglib.h
2015-04-14 20:24:31 +01:00
John Cupitt 4793c69bba turn VipsBlob into a proper type
with a .get() method we call call from Python
2014-09-02 21:59:11 +01:00
John Cupitt 5baf0dfdcd small fixes for buffer save 2014-04-23 09:26:44 +01:00
John Cupitt c1e7bbab29 add "no-subsample" option to jpeg save
turns off chroma subsampling
2013-11-13 12:59:56 +00:00
John Cupitt ad723ade5a move --strip into save base class
was in jpegsave, now in save

need to add support to png writer, maybe vips as well, tiff could not
attach ICC profiles I guess
2013-11-13 09:00:47 +00:00
John Cupitt 847332a77e add --strip option to jpegsave
drops all metadata
2013-11-12 17:30:33 +00:00
John Cupitt 0bfb23eca8 add "interlace" option to vips_jpegsave()
see https://github.com/jcupitt/libvips/issues/77
2013-10-21 12:16:33 +01:00
John Cupitt 6c0eced22c build fixes for OS X
stupid libjpeg and their stupid bool type argh
2013-10-04 11:54:01 +01:00
Lovell Fuller 7a88c55355 Add optional optimize_coding param to JPEG output methods to compute optimal Huffman coding tables, defaults to FALSE. 2013-10-01 22:48:02 +01:00
John Cupitt 6167d4d97c Fix three minor memleaks 2013-07-15 22:01:00 +01:00
Benjamin Gilbert 8cc76a6ba3 Update address for Free Software Foundation
Also update LGPLv2.1 license text from the copy currently on the GNU
website.
2013-03-07 00:40:19 -05:00
John Cupitt 0fc9c286ee property name mixup 2012-07-16 12:50:09 +01:00
John Cupitt 0983b50905 Merge remote-tracking branch 'origin/gobject-introspection' into goi-merge
Conflicts:
	TODO
	libvips/arithmetic/im_recomb.c
	libvips/arithmetic/im_stats.c
	libvips/deprecated/im_measure.c
	libvips/include/vips/header.h
	libvips/include/vips/image.h
	libvips/include/vips/object.h
	libvips/iofuncs/header.c
	libvips/iofuncs/image.c
	libvips/iofuncs/object.c
2011-12-24 17:36:55 +00:00
John Cupitt a2ed2edb5d fix --without-tiff etc. 2011-12-13 13:19:20 +00:00
John Cupitt 0b8c31f85e make tiff2vips into a class 2011-12-05 17:39:11 +00:00
John Cupitt 0497fceb15 add new-style tiff writer 2011-12-02 14:48:37 +00:00
John Cupitt 4fd37502bc turn format/*jpeg* into stubs
the old im_vips2jpeg.c and im_jpeg2vips.c are now just stubs calling the
new foreign/ things
2011-11-30 11:51:01 +00:00
John Cupitt 1f59fd7f10 add jpegsave_mime 2011-11-29 22:14:06 +00:00
John Cupitt 5bf5a3f2ba add load/save jpeg buffer 2011-11-29 18:13:14 +00:00