File tree 2 files changed +12
-0
lines changed
2 files changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -981,6 +981,14 @@ extern "C" bool C_SkColorSpace_unique(const SkColorSpace* self) {
981
981
return self->unique ();
982
982
}
983
983
984
+ extern " C" SkColorSpace* C_SkColorSpace_MakeICC (const void * buffer, size_t size) {
985
+ skcms_ICCProfile profile;
986
+ if (skcms_Parse (buffer, size, &profile)) {
987
+ return SkColorSpace::Make (profile).release ();
988
+ }
989
+ return nullptr ;
990
+ }
991
+
984
992
extern " C" SkColorSpace* C_SkColorSpace_MakeSRGB () {
985
993
return SkColorSpace::MakeSRGB ().release ();
986
994
}
Original file line number Diff line number Diff line change @@ -385,6 +385,10 @@ impl ColorSpace {
385
385
Self :: from_ptr ( unsafe { sb:: C_SkColorSpace_MakeSRGBLinear ( ) } ) . unwrap ( )
386
386
}
387
387
388
+ pub fn new_icc ( data : & [ u8 ] ) -> Option < Self > {
389
+ Self :: from_ptr ( unsafe { sb:: C_SkColorSpace_MakeICC ( data. as_ptr ( ) as _ , data. len ( ) ) } )
390
+ }
391
+
388
392
// TODO: makeRGB
389
393
390
394
pub fn new_cicp (
You can’t perform that action at this time.
0 commit comments