+ cv->width = pcv->width == ncv->width ? pcv->width :
+ pcv->width*prev_scale + ncv->width*next_scale + 0.5;
+ int pr = (pcv->color>>16)&0xff, nr = (ncv->color>>16)&0xff;
+ int pg = (pcv->color>> 8)&0xff, ng = (ncv->color>> 8)&0xff;
+ int pb = (pcv->color>> 0)&0xff, nb = (ncv->color>> 0)&0xff;
+ int pa = (~pcv->color>>24)&0xff, na = (~ncv->color>>24)&0xff;
+ int r = pr == nr ? pr : pr*prev_scale + nr*next_scale + 0.5;
+ int g = pg == ng ? pg : pg*prev_scale + ng*next_scale + 0.5;
+ int b = pb == nb ? pb : pb*prev_scale + nb*next_scale + 0.5;
+ int a = pa == na ? pa : pa*prev_scale + na*next_scale + 0.5;
+ bclamp(r,0,255); bclamp(g,0,255); bclamp(b,0,255); bclamp(a,0,255);
+ cv->color = (~a<<24) | (r<<16) | (g<<8) | (b<<0);