#include "zoom.h" zoom1_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte *out1, *out2; int i2, nn; nn = n1; for (out1=out, out2=out+n1, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1++ = *inp; *out2++ = *inp; } } } zoom2_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte2 *out1, *out2, *ztablep; int i2, nn; nn = n1; for (out1=(Byte2 *)out, out2=(Byte2 *)out+n1, ztablep=ztable12, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1 = ztablep[ *inp ]; *out2++ = *out1++; } } } szoom2_2 (in,out,n1,n2,zoom1,zoom2) Byte2 *in, *out; int n1, n2, zoom1, zoom2; { register Byte2 *inp, *end, *rowp; register Byte4 *out1, *out2, *ztablep; int i2, nn; n1 /= 2; nn = n1; for (out1=(Byte4 *)out, out2=(Byte4 *)out+n1, ztablep=ztable24, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1 = ztablep[ *inp ]; *out2++ = *out1++; } } } zoom4_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte4 *out1, *out2, *ztablep; int i2, nn; nn = n1; for (out1=(Byte4 *)out, out2=(Byte4 *)out+n1, ztablep=ztable14, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1 = ztablep[ *inp ]; *out2++ = *out1++; } } } szoom4_2 (in,out,n1,n2,zoom1,zoom2) Byte2 *in, *out; int n1, n2, zoom1, zoom2; { register Byte2 *inp, *end, *rowp; register Byte8 *out1, *out2, *ztablep; int i2, nn; n1 /= 2; nn = n1; for (out1=(Byte8 *)out, out2=(Byte8 *)out+n1, ztablep=ztable28, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1 = ztablep[ *inp ]; *out2++ = *out1++; } } } zoom8_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte8 *out1, *out2, *ztablep; int i2, nn; nn = n1; for (out1=(Byte8 *)out, out2=(Byte8 *)out+n1, ztablep=ztable18, rowp=in, i2=0; i2 < n2; i2++, rowp=end, out1+=nn, out2+=nn) { for (inp=rowp, end=rowp+n1; inp < end; inp++) { *out1 = ztablep[ *inp ]; *out2++ = *out1++; } } } zoom1n_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte *out1, *out2; int i2, nn, n3, izoom1; n3 = ZoomLen (n1, zoom1) / zoom1; nn = n3 * zoom1; for (izoom1=0; izoom1 < zoom1; izoom1++) { for (out1=out+izoom1, out2=out+nn+izoom1, i2=0; i2 < n2; i2++, out1+=nn, out2+=nn) { for (inp=in+i2*n1, end=inp+n3; inp < end; inp++, out1+=zoom1, out2+=zoom1) { *out1 = *inp; *out2 = *inp; } } } } zoom2n_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte2 *out1, *out2, *ztablep; int i2, nn, n3, izoom1; zoom1 /= 2; n3 = ZoomLen (n1, zoom1) / zoom1; nn = n3 * zoom1; for (izoom1=0; izoom1 < zoom1; izoom1++) { for (out1=(Byte2 *)out+izoom1, out2=(Byte2 *)out+nn+izoom1, ztablep=ztable12, i2=0; i2 < n2; i2++, out1+=nn, out2+=nn) { for (inp=in+i2*n1, end=inp+n3; inp < end; inp++, out1+=zoom1, out2+=zoom1) { *out1 = ztablep[ *inp ]; *out2 = *out1; } } } } zoom4n_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte4 *out1, *out2, *ztablep; int i2, nn, n3, izoom1; zoom1 /= 4; n3 = ZoomLen (n1, zoom1) / zoom1; nn = n3 * zoom1; for (izoom1=0; izoom1 < zoom1; izoom1++) { for (out1=(Byte4 *)out+izoom1, out2=(Byte4 *)out+nn+izoom1, ztablep=ztable14, i2=0; i2 < n2; i2++, out1+=nn, out2+=nn) { for (inp=in+i2*n1, end=inp+n3; inp < end; inp++, out1+=zoom1, out2+=zoom1) { *out1 = ztablep[ *inp ]; *out2 = *out1; } } } } zoom8n_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte8 *out1, *out2, *ztablep; int i2, nn, n3, izoom1; zoom1 /= 8; n3 = ZoomLen (n1, zoom1) / zoom1; nn = n3 * zoom1; for (izoom1=0; izoom1 < zoom1; izoom1++) { for (out1=(Byte8 *)out+izoom1, out2=(Byte8 *)out+nn+izoom1, ztablep=ztable18, i2=0; i2 < n2; i2++, out1+=nn, out2+=nn) { for (inp=in+i2*n1, end=inp+n3; inp < end; inp++, out1+=zoom1, out2+=zoom1) { *out1 = ztablep[ *inp ]; *out2 = *out1; } } } } zoommn_2 (in,out,n1,n2,zoom1,zoom2) Byte *in, *out; int n1, n2, zoom1, zoom2; { register Byte *inp, *end, *rowp; register Byte *out1, *out2; register int zm1; int i2, nn, n3; zm1 = 1 - zoom1; nn = ZoomLen (n1, zoom1); for (out1=out, out2=out+nn, i2=0; i2 < n2; i2++, out1+=nn, out2+=nn) { for (inp=in+i2*n1, end=inp+nn*zm1; inp < end; inp+=zm1) { *out1 = *inp; *out2++ = *out1++; } } }