@@ -211,14 +211,15 @@ typedef struct _VipsColourRoute {
211
211
#define scRGB VIPS_INTERPRETATION_scRGB
212
212
#define sRGB VIPS_INTERPRETATION_sRGB
213
213
#define HSV VIPS_INTERPRETATION_HSV
214
+ #define BW VIPS_INTERPRETATION_B_W
214
215
#define RGB16 VIPS_INTERPRETATION_RGB16
215
216
#define GREY16 VIPS_INTERPRETATION_GREY16
216
217
#define YXY VIPS_INTERPRETATION_YXY
217
- #define BW VIPS_INTERPRETATION_B_W
218
218
219
219
/* All the routes we know about.
220
220
*/
221
221
static VipsColourRoute vips_colour_routes [] = {
222
+ { XYZ , XYZ , { vips_cast_float , NULL } },
222
223
{ XYZ , LAB , { vips_XYZ2Lab , NULL } },
223
224
{ XYZ , LABQ , { vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
224
225
{ XYZ , LCH , { vips_XYZ2Lab , vips_Lab2LCh , NULL } },
@@ -234,6 +235,7 @@ static VipsColourRoute vips_colour_routes[] = {
234
235
{ XYZ , YXY , { vips_XYZ2Yxy , NULL } },
235
236
236
237
{ LAB , XYZ , { vips_Lab2XYZ , NULL } },
238
+ { LAB , LAB , { vips_cast_float , NULL } },
237
239
{ LAB , LABQ , { vips_Lab2LabQ , NULL } },
238
240
{ LAB , LCH , { vips_Lab2LCh , NULL } },
239
241
{ LAB , CMC , { vips_Lab2LCh , vips_LCh2CMC , NULL } },
@@ -249,6 +251,7 @@ static VipsColourRoute vips_colour_routes[] = {
249
251
250
252
{ LABQ , XYZ , { vips_LabQ2Lab , vips_Lab2XYZ , NULL } },
251
253
{ LABQ , LAB , { vips_LabQ2Lab , NULL } },
254
+ { LABQ , LABQ , { NULL } },
252
255
{ LABQ , LCH , { vips_LabQ2Lab , vips_Lab2LCh , NULL } },
253
256
{ LABQ , CMC , { vips_LabQ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
254
257
{ LABQ , LABS , { vips_LabQ2LabS , NULL } },
@@ -264,6 +267,7 @@ static VipsColourRoute vips_colour_routes[] = {
264
267
{ LCH , XYZ , { vips_LCh2Lab , vips_Lab2XYZ , NULL } },
265
268
{ LCH , LAB , { vips_LCh2Lab , NULL } },
266
269
{ LCH , LABQ , { vips_LCh2Lab , vips_Lab2LabQ , NULL } },
270
+ { LCH , LCH , { vips_cast_float , NULL } },
267
271
{ LCH , CMC , { vips_LCh2CMC , NULL } },
268
272
{ LCH , LABS , { vips_LCh2Lab , vips_Lab2LabS , NULL } },
269
273
{ LCH , CMYK , { vips_LCh2Lab , vips_Lab2XYZ , vips_XYZ2CMYK , NULL } },
@@ -279,6 +283,7 @@ static VipsColourRoute vips_colour_routes[] = {
279
283
{ CMC , LAB , { vips_CMC2LCh , vips_LCh2Lab , NULL } },
280
284
{ CMC , LABQ , { vips_CMC2LCh , vips_LCh2Lab , vips_Lab2LabQ , NULL } },
281
285
{ CMC , LCH , { vips_CMC2LCh , NULL } },
286
+ { CMC , CMC , { vips_cast_float , NULL } },
282
287
{ CMC , LABS , { vips_CMC2LCh , vips_LCh2Lab , vips_Lab2LabS , NULL } },
283
288
{ CMC , CMYK , { vips_CMC2LCh , vips_LCh2Lab , vips_Lab2XYZ , vips_XYZ2CMYK , NULL } },
284
289
{ CMC , scRGB , { vips_CMC2LCh , vips_LCh2Lab , vips_Lab2XYZ , vips_XYZ2scRGB , NULL } },
@@ -294,6 +299,7 @@ static VipsColourRoute vips_colour_routes[] = {
294
299
{ LABS , LABQ , { vips_LabS2LabQ , NULL } },
295
300
{ LABS , LCH , { vips_LabS2Lab , vips_Lab2LCh , NULL } },
296
301
{ LABS , CMC , { vips_LabS2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
302
+ { LABS , LABS , { vips_cast_short , NULL } },
297
303
{ LABS , CMYK , { vips_LabS2Lab , vips_Lab2XYZ , vips_XYZ2CMYK , NULL } },
298
304
{ LABS , scRGB , { vips_LabS2Lab , vips_Lab2XYZ , vips_XYZ2scRGB , NULL } },
299
305
{ LABS , sRGB , { vips_LabS2Lab , vips_Lab2XYZ , vips_XYZ2scRGB , vips_scRGB2sRGB , NULL } },
@@ -303,44 +309,48 @@ static VipsColourRoute vips_colour_routes[] = {
303
309
{ LABS , GREY16 , { vips_LabS2Lab , vips_Lab2XYZ , vips_XYZ2scRGB , vips_scRGB2BW16 , NULL } },
304
310
{ LABS , YXY , { vips_LabS2Lab , vips_Lab2XYZ , vips_XYZ2Yxy , NULL } },
305
311
306
- { scRGB , XYZ , { vips_scRGB2XYZ , NULL } },
307
- { scRGB , LAB , { vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
308
- { scRGB , LABQ , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
309
- { scRGB , LCH , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
310
- { scRGB , CMC , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
311
- { scRGB , CMYK , { vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
312
- { scRGB , sRGB , { vips_scRGB2sRGB , NULL } },
313
- { scRGB , HSV , { vips_scRGB2sRGB , vips_sRGB2HSV , NULL } },
314
- { scRGB , BW , { vips_scRGB2BW , NULL } },
315
- { scRGB , LABS , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
316
- { scRGB , RGB16 , { vips_scRGB2RGB16 , NULL } },
317
- { scRGB , GREY16 , { vips_scRGB2BW16 , NULL } },
318
- { scRGB , YXY , { vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
319
-
320
312
{ CMYK , XYZ , { vips_CMYK2XYZ , NULL } },
321
313
{ CMYK , LAB , { vips_CMYK2XYZ , vips_XYZ2Lab , NULL } },
322
314
{ CMYK , LABQ , { vips_CMYK2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
323
315
{ CMYK , LCH , { vips_CMYK2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
324
316
{ CMYK , CMC , { vips_CMYK2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
317
+ { CMYK , LABS , { vips_CMYK2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
318
+ // can be 8 or 16 bit, so do nothing
319
+ { CMYK , CMYK , { NULL } },
325
320
{ CMYK , scRGB , { vips_CMYK2XYZ , vips_XYZ2scRGB , NULL } },
326
321
{ CMYK , sRGB , { vips_CMYK2XYZ , vips_XYZ2scRGB , vips_scRGB2sRGB , NULL } },
327
322
{ CMYK , HSV , { vips_CMYK2XYZ , vips_XYZ2scRGB , vips_scRGB2sRGB , vips_sRGB2HSV , NULL } },
328
323
{ CMYK , BW , { vips_CMYK2XYZ , vips_XYZ2scRGB , vips_scRGB2BW , NULL } },
329
- { CMYK , LABS , { vips_CMYK2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
330
324
{ CMYK , RGB16 , { vips_CMYK2XYZ , vips_XYZ2scRGB , vips_scRGB2RGB16 , NULL } },
331
325
{ CMYK , GREY16 , { vips_CMYK2XYZ , vips_XYZ2scRGB , vips_scRGB2BW16 , NULL } },
332
326
{ CMYK , YXY , { vips_CMYK2XYZ , vips_XYZ2Yxy , NULL } },
333
327
328
+ { scRGB , XYZ , { vips_scRGB2XYZ , NULL } },
329
+ { scRGB , LAB , { vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
330
+ { scRGB , LABQ , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
331
+ { scRGB , LCH , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
332
+ { scRGB , CMC , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
333
+ { scRGB , LABS , { vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
334
+ { scRGB , CMYK , { vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
335
+ { scRGB , scRGB , { vips_cast_float , NULL } },
336
+ { scRGB , sRGB , { vips_scRGB2sRGB , NULL } },
337
+ { scRGB , HSV , { vips_scRGB2sRGB , vips_sRGB2HSV , NULL } },
338
+ { scRGB , BW , { vips_scRGB2BW , NULL } },
339
+ { scRGB , RGB16 , { vips_scRGB2RGB16 , NULL } },
340
+ { scRGB , GREY16 , { vips_scRGB2BW16 , NULL } },
341
+ { scRGB , YXY , { vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
342
+
334
343
{ sRGB , XYZ , { vips_sRGB2scRGB , vips_scRGB2XYZ , NULL } },
335
344
{ sRGB , LAB , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
336
345
{ sRGB , LABQ , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
337
346
{ sRGB , LCH , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
338
347
{ sRGB , CMC , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
348
+ { sRGB , LABS , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
339
349
{ sRGB , CMYK , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
340
350
{ sRGB , scRGB , { vips_sRGB2scRGB , NULL } },
351
+ { sRGB , sRGB , { vips_cast_uchar , NULL } },
341
352
{ sRGB , HSV , { vips_sRGB2HSV , NULL } },
342
353
{ sRGB , BW , { vips_sRGB2scRGB , vips_scRGB2BW , NULL } },
343
- { sRGB , LABS , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
344
354
{ sRGB , RGB16 , { vips_sRGB2RGB16 , NULL } },
345
355
{ sRGB , GREY16 , { vips_sRGB2scRGB , vips_scRGB2BW16 , NULL } },
346
356
{ sRGB , YXY , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
@@ -350,26 +360,43 @@ static VipsColourRoute vips_colour_routes[] = {
350
360
{ HSV , LABQ , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
351
361
{ HSV , LCH , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
352
362
{ HSV , CMC , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
363
+ { HSV , LABS , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
353
364
{ HSV , CMYK , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
354
365
{ HSV , scRGB , { vips_HSV2sRGB , vips_sRGB2scRGB , NULL } },
355
366
{ HSV , sRGB , { vips_HSV2sRGB , NULL } },
367
+ { HSV , HSV , { vips_cast_uchar , NULL } },
356
368
{ HSV , BW , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2BW , NULL } },
357
- { HSV , LABS , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
358
369
{ HSV , RGB16 , { vips_HSV2sRGB , vips_sRGB2RGB16 , NULL } },
359
370
{ HSV , GREY16 , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2BW16 , NULL } },
360
371
{ HSV , YXY , { vips_HSV2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
361
372
373
+ { BW , XYZ , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , NULL } },
374
+ { BW , LAB , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
375
+ { BW , LABQ , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
376
+ { BW , LCH , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
377
+ { BW , CMC , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
378
+ { BW , LABS , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
379
+ { BW , CMYK , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
380
+ { BW , scRGB , { vips_BW2sRGB , vips_sRGB2scRGB , NULL } },
381
+ { BW , sRGB , { vips_BW2sRGB , NULL } },
382
+ { BW , HSV , { vips_BW2sRGB , vips_sRGB2HSV , NULL } },
383
+ { BW , BW , { vips_cast_uchar , NULL } },
384
+ { BW , RGB16 , { vips_BW2sRGB , vips_sRGB2RGB16 , NULL } },
385
+ { BW , GREY16 , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2BW16 , NULL } },
386
+ { BW , YXY , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
387
+
362
388
{ RGB16 , XYZ , { vips_sRGB2scRGB , vips_scRGB2XYZ , NULL } },
363
389
{ RGB16 , LAB , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
364
390
{ RGB16 , LABQ , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
365
391
{ RGB16 , LCH , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
366
392
{ RGB16 , CMC , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
393
+ { RGB16 , LABS , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
367
394
{ RGB16 , CMYK , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
368
395
{ RGB16 , scRGB , { vips_sRGB2scRGB , NULL } },
369
396
{ RGB16 , sRGB , { vips_RGB162sRGB , NULL } },
370
397
{ RGB16 , HSV , { vips_RGB162sRGB , vips_sRGB2HSV , NULL } },
371
398
{ RGB16 , BW , { vips_sRGB2scRGB , vips_scRGB2BW , NULL } },
372
- { RGB16 , LABS , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
399
+ { RGB16 , RGB16 , { vips_cast_ushort , NULL } },
373
400
{ RGB16 , GREY16 , { vips_sRGB2scRGB , vips_scRGB2BW16 , NULL } },
374
401
{ RGB16 , YXY , { vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
375
402
@@ -378,29 +405,16 @@ static VipsColourRoute vips_colour_routes[] = {
378
405
{ GREY16 , LABQ , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
379
406
{ GREY16 , LCH , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
380
407
{ GREY16 , CMC , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
408
+ { GREY16 , LABS , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
381
409
{ GREY16 , CMYK , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
382
410
{ GREY16 , scRGB , { vips_GREY162RGB16 , vips_sRGB2scRGB , NULL } },
383
411
{ GREY16 , sRGB , { vips_GREY162RGB16 , vips_RGB162sRGB , NULL } },
384
412
{ GREY16 , HSV , { vips_GREY162RGB16 , vips_RGB162sRGB , vips_sRGB2HSV , NULL } },
385
413
{ GREY16 , BW , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2BW , NULL } },
386
- { GREY16 , LABS , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
387
414
{ GREY16 , RGB16 , { vips_GREY162RGB16 , NULL } },
415
+ { GREY16 , GREY16 , { vips_cast_ushort , NULL } },
388
416
{ GREY16 , YXY , { vips_GREY162RGB16 , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
389
417
390
- { BW , XYZ , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , NULL } },
391
- { BW , LAB , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , NULL } },
392
- { BW , LABQ , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
393
- { BW , LCH , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , NULL } },
394
- { BW , CMC , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LCh , vips_LCh2CMC , NULL } },
395
- { BW , CMYK , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2CMYK , NULL } },
396
- { BW , scRGB , { vips_BW2sRGB , vips_sRGB2scRGB , NULL } },
397
- { BW , sRGB , { vips_BW2sRGB , NULL } },
398
- { BW , HSV , { vips_BW2sRGB , vips_sRGB2HSV , NULL } },
399
- { BW , LABS , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Lab , vips_Lab2LabS , NULL } },
400
- { BW , RGB16 , { vips_BW2sRGB , vips_sRGB2RGB16 , NULL } },
401
- { BW , GREY16 , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2BW16 , NULL } },
402
- { BW , YXY , { vips_BW2sRGB , vips_sRGB2scRGB , vips_scRGB2XYZ , vips_XYZ2Yxy , NULL } },
403
-
404
418
{ YXY , XYZ , { vips_Yxy2XYZ , NULL } },
405
419
{ YXY , LAB , { vips_Yxy2XYZ , vips_XYZ2Lab , NULL } },
406
420
{ YXY , LABQ , { vips_Yxy2XYZ , vips_XYZ2Lab , vips_Lab2LabQ , NULL } },
@@ -413,7 +427,8 @@ static VipsColourRoute vips_colour_routes[] = {
413
427
{ YXY , HSV , { vips_Yxy2XYZ , vips_XYZ2scRGB , vips_scRGB2sRGB , vips_sRGB2HSV , NULL } },
414
428
{ YXY , BW , { vips_Yxy2XYZ , vips_XYZ2scRGB , vips_scRGB2BW , NULL } },
415
429
{ YXY , RGB16 , { vips_Yxy2XYZ , vips_XYZ2scRGB , vips_scRGB2RGB16 , NULL } },
416
- { YXY , GREY16 , { vips_Yxy2XYZ , vips_XYZ2scRGB , vips_scRGB2BW16 , NULL } }
430
+ { YXY , GREY16 , { vips_Yxy2XYZ , vips_XYZ2scRGB , vips_scRGB2BW16 , NULL } },
431
+ { YXY , YXY , { vips_cast_float , NULL } },
417
432
418
433
};
419
434
@@ -468,8 +483,7 @@ vips_colourspace_build(VipsObject *object)
468
483
469
484
int i , j ;
470
485
VipsImage * x ;
471
- VipsImage * * t = (VipsImage * * )
472
- vips_object_local_array (object , 1 );
486
+ VipsImage * * t = (VipsImage * * ) vips_object_local_array (object , 1 );
473
487
VipsImage * * pipe = (VipsImage * * )
474
488
vips_object_local_array (object , MAX_STEPS );
475
489
@@ -502,25 +516,14 @@ vips_colourspace_build(VipsObject *object)
502
516
if (interpretation == VIPS_INTERPRETATION_RGB )
503
517
interpretation = VIPS_INTERPRETATION_sRGB ;
504
518
505
- /* No conversion necessary.
506
- */
507
- if (interpretation == colourspace -> space ) {
508
- g_object_set (colourspace , "out" , vips_image_new (), NULL );
509
-
510
- return vips_image_write (colourspace -> in , colourspace -> out );
511
- }
512
-
513
519
for (i = 0 ; i < VIPS_NUMBER (vips_colour_routes ); i ++ )
514
520
if (vips_colour_routes [i ].from == interpretation &&
515
521
vips_colour_routes [i ].to == colourspace -> space )
516
522
break ;
517
523
if (i == VIPS_NUMBER (vips_colour_routes )) {
518
- vips_error ("vips_colourspace" ,
519
- _ ("no known route from '%s' to '%s'" ),
520
- vips_enum_nick (VIPS_TYPE_INTERPRETATION ,
521
- interpretation ),
522
- vips_enum_nick (VIPS_TYPE_INTERPRETATION ,
523
- colourspace -> space ));
524
+ vips_error ("vips_colourspace" , _ ("no known route from '%s' to '%s'" ),
525
+ vips_enum_nick (VIPS_TYPE_INTERPRETATION , interpretation ),
526
+ vips_enum_nick (VIPS_TYPE_INTERPRETATION , colourspace -> space ));
524
527
return -1 ;
525
528
}
526
529
0 commit comments