fix hist_find crash with non-u8/u16 input
This commit is contained in:
parent
e09aa1d4be
commit
12d623fa25
@ -349,13 +349,13 @@ vips_hist_find_scan( VipsStatistic *statistic, void *seq,
|
|||||||
VipsStatisticScanFn scan;
|
VipsStatisticScanFn scan;
|
||||||
|
|
||||||
if( hist_find->which < 0 ) {
|
if( hist_find->which < 0 ) {
|
||||||
if( statistic->in->BandFmt == VIPS_FORMAT_UCHAR )
|
if( statistic->ready->BandFmt == VIPS_FORMAT_UCHAR )
|
||||||
scan = vips_hist_find_uchar_scan;
|
scan = vips_hist_find_uchar_scan;
|
||||||
else
|
else
|
||||||
scan = vips_hist_find_ushort_scan;
|
scan = vips_hist_find_ushort_scan;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if( statistic->in->BandFmt == VIPS_FORMAT_UCHAR )
|
if( statistic->ready->BandFmt == VIPS_FORMAT_UCHAR )
|
||||||
scan = vips_hist_find_uchar_extract_scan;
|
scan = vips_hist_find_uchar_extract_scan;
|
||||||
else
|
else
|
||||||
scan = vips_hist_find_ushort_extract_scan;
|
scan = vips_hist_find_ushort_extract_scan;
|
||||||
@ -371,7 +371,7 @@ vips_hist_find_scan( VipsStatistic *statistic, void *seq,
|
|||||||
|
|
||||||
/* Type mapping: go to uchar or ushort.
|
/* Type mapping: go to uchar or ushort.
|
||||||
*/
|
*/
|
||||||
static const VipsBandFormat vips_histgr_format_table[10] = {
|
static const VipsBandFormat vips_hist_find_format_table[10] = {
|
||||||
/* UC C US S UI I F X D DX */
|
/* UC C US S UI I F X D DX */
|
||||||
UC, UC, US, US, US, US, US, US, US, US
|
UC, UC, US, US, US, US, US, US, US, US
|
||||||
};
|
};
|
||||||
@ -393,7 +393,7 @@ vips_hist_find_class_init( VipsHistFindClass *class )
|
|||||||
sclass->start = vips_hist_find_start;
|
sclass->start = vips_hist_find_start;
|
||||||
sclass->scan = vips_hist_find_scan;
|
sclass->scan = vips_hist_find_scan;
|
||||||
sclass->stop = vips_hist_find_stop;
|
sclass->stop = vips_hist_find_stop;
|
||||||
sclass->format_table = vips_histgr_format_table;
|
sclass->format_table = vips_hist_find_format_table;
|
||||||
|
|
||||||
VIPS_ARG_IMAGE( class, "out", 100,
|
VIPS_ARG_IMAGE( class, "out", 100,
|
||||||
_( "Output" ),
|
_( "Output" ),
|
||||||
|
25
python/try12.py
Executable file
25
python/try12.py
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
#import logging
|
||||||
|
#logging.basicConfig(level = logging.DEBUG)
|
||||||
|
|
||||||
|
from gi.repository import Vips
|
||||||
|
from vips8 import vips
|
||||||
|
|
||||||
|
im = Vips.Image.new_from_file(sys.argv[1])
|
||||||
|
|
||||||
|
im = im | im
|
||||||
|
|
||||||
|
black = Vips.Image.black(im.width, 150)
|
||||||
|
red = black + [255, 0, 0]
|
||||||
|
left = Vips.Image.text("Left corner").embed(50, 50, im.width, 150)
|
||||||
|
right_text = Vips.Image.text("Right corner")
|
||||||
|
right = right_text.embed(im.width - right_text.width - 50, 50, im.width, 150)
|
||||||
|
|
||||||
|
footer = (left | right).blend(black, red)
|
||||||
|
|
||||||
|
im = im.insert(footer, 0, im.height - footer.height)
|
||||||
|
|
||||||
|
im.write_to_file(sys.argv[2])
|
Loading…
x
Reference in New Issue
Block a user