Changeset 530 for ImageMagick/trunk
- Timestamp:
- 11/03/09 12:14:50 (3 weeks ago)
- Location:
- ImageMagick/trunk/magick
- Files:
-
- 3 modified
Legend:
- Unmodified
- Added
- Removed
-
ImageMagick/trunk/magick/effect.c
r404 r530 159 159 160 160 MagickPixelPacket 161 zero;161 bias; 162 162 163 163 MagickRealType 164 164 alpha, 165 bias,166 165 normalize; 167 166 … … 264 263 status=MagickTrue; 265 264 progress=0; 266 bias=image->bias;267 GetMagickPixelPacket(image,&zero);265 GetMagickPixelPacket(image,&bias); 266 SetMagickPixelPacketBias(image,&bias); 268 267 image_view=AcquireCacheView(image); 269 268 edge_view=AcquireCacheView(edge_image); … … 332 331 break; 333 332 indexes=GetCacheViewVirtualIndexQueue(image_view); 334 pixel= zero;333 pixel=bias; 335 334 k=kernel[i]; 336 335 for (v=0; v < (long) (width-i); v++) … … 360 359 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 361 360 if ((channel & RedChannel) != 0) 362 q->red=RoundToQuantum(gamma*pixel.red +bias);361 q->red=RoundToQuantum(gamma*pixel.red); 363 362 if ((channel & GreenChannel) != 0) 364 q->green=RoundToQuantum(gamma*pixel.green +bias);363 q->green=RoundToQuantum(gamma*pixel.green); 365 364 if ((channel & BlueChannel) != 0) 366 q->blue=RoundToQuantum(gamma*pixel.blue +bias);365 q->blue=RoundToQuantum(gamma*pixel.blue); 367 366 if ((channel & OpacityChannel) != 0) 368 q->opacity=RoundToQuantum(pixel.opacity +bias);367 q->opacity=RoundToQuantum(pixel.opacity); 369 368 if (((channel & IndexChannel) != 0) && 370 369 (image->colorspace == CMYKColorspace)) 371 blur_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);370 blur_indexes[x]=RoundToQuantum(gamma*pixel.index); 372 371 q++; 373 372 r++; … … 477 476 478 477 MagickPixelPacket 479 zero;478 bias; 480 479 481 480 MagickRealType 482 481 alpha, 483 bias,484 482 normalize; 485 483 … … 582 580 status=MagickTrue; 583 581 progress=0; 584 bias=image->bias;585 GetMagickPixelPacket(image,&zero);582 GetMagickPixelPacket(image,&bias); 583 SetMagickPixelPacketBias(image,&bias); 586 584 image_view=AcquireCacheView(image); 587 585 edge_view=AcquireCacheView(edge_image); … … 651 649 indexes=GetCacheViewVirtualIndexQueue(image_view); 652 650 k=kernel[i]; 653 pixel= zero;651 pixel=bias; 654 652 for (v=0; v < (long) (width-i); v++) 655 653 { … … 678 676 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 679 677 if ((channel & RedChannel) != 0) 680 q->red=RoundToQuantum(gamma*pixel.red +bias);678 q->red=RoundToQuantum(gamma*pixel.red); 681 679 if ((channel & GreenChannel) != 0) 682 q->green=RoundToQuantum(gamma*pixel.green +bias);680 q->green=RoundToQuantum(gamma*pixel.green); 683 681 if ((channel & BlueChannel) != 0) 684 q->blue=RoundToQuantum(gamma*pixel.blue +bias);682 q->blue=RoundToQuantum(gamma*pixel.blue); 685 683 if ((channel & OpacityChannel) != 0) 686 q->opacity=RoundToQuantum(pixel.opacity +bias);684 q->opacity=RoundToQuantum(pixel.opacity); 687 685 if (((channel & IndexChannel) != 0) && 688 686 (image->colorspace == CMYKColorspace)) 689 sharp_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);687 sharp_indexes[x]=RoundToQuantum(gamma*pixel.index); 690 688 q++; 691 689 r++; … … 802 800 alpha=exp((-((double) (i*i))/(double) (2.0*KernelRank*KernelRank* 803 801 MagickSigma*MagickSigma))); 804 kernel[(i +bias)/KernelRank]+=(double) (alpha/(MagickSQ2PI*sigma));802 kernel[(i)/KernelRank]+=(double) (alpha/(MagickSQ2PI*sigma)); 805 803 } 806 804 normalize=0.0; … … 833 831 834 832 MagickPixelPacket 835 zero;836 837 MagickRealType838 833 bias; 839 834 … … 904 899 status=MagickTrue; 905 900 progress=0; 906 GetMagickPixelPacket(image,& zero);907 bias=image->bias;901 GetMagickPixelPacket(image,&bias); 902 SetMagickPixelPacketBias(image,&bias); 908 903 image_view=AcquireCacheView(image); 909 904 blur_view=AcquireCacheView(blur_image); … … 955 950 i; 956 951 957 pixel= zero;952 pixel=bias; 958 953 k=kernel; 959 954 kernel_pixels=p; … … 969 964 } 970 965 if ((channel & RedChannel) != 0) 971 q->red=RoundToQuantum(pixel.red +bias);966 q->red=RoundToQuantum(pixel.red); 972 967 if ((channel & GreenChannel) != 0) 973 q->green=RoundToQuantum(pixel.green +bias);968 q->green=RoundToQuantum(pixel.green); 974 969 if ((channel & BlueChannel) != 0) 975 q->blue=RoundToQuantum(pixel.blue +bias);970 q->blue=RoundToQuantum(pixel.blue); 976 971 if ((channel & OpacityChannel) != 0) 977 972 { … … 984 979 kernel_pixels++; 985 980 } 986 q->opacity=RoundToQuantum(pixel.opacity +bias);981 q->opacity=RoundToQuantum(pixel.opacity); 987 982 } 988 983 if (((channel & IndexChannel) != 0) && … … 1000 995 kernel_indexes++; 1001 996 } 1002 blur_indexes[x]=RoundToQuantum(pixel.index +bias);997 blur_indexes[x]=RoundToQuantum(pixel.index); 1003 998 } 1004 999 } … … 1023 1018 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 1024 1019 if ((channel & RedChannel) != 0) 1025 q->red=RoundToQuantum(gamma*pixel.red +bias);1020 q->red=RoundToQuantum(gamma*pixel.red); 1026 1021 if ((channel & GreenChannel) != 0) 1027 q->green=RoundToQuantum(gamma*pixel.green +bias);1022 q->green=RoundToQuantum(gamma*pixel.green); 1028 1023 if ((channel & BlueChannel) != 0) 1029 q->blue=RoundToQuantum(gamma*pixel.blue +bias);1024 q->blue=RoundToQuantum(gamma*pixel.blue); 1030 1025 if ((channel & OpacityChannel) != 0) 1031 1026 { … … 1038 1033 kernel_pixels++; 1039 1034 } 1040 q->opacity=RoundToQuantum(pixel.opacity +bias);1035 q->opacity=RoundToQuantum(pixel.opacity); 1041 1036 } 1042 1037 if (((channel & IndexChannel) != 0) && … … 1058 1053 kernel_indexes++; 1059 1054 } 1060 blur_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);1055 blur_indexes[x]=RoundToQuantum(gamma*pixel.index); 1061 1056 } 1062 1057 } … … 1133 1128 i; 1134 1129 1135 pixel= zero;1130 pixel=bias; 1136 1131 k=kernel; 1137 1132 kernel_pixels=p; … … 1147 1142 } 1148 1143 if ((channel & RedChannel) != 0) 1149 q->red=RoundToQuantum(pixel.red +bias);1144 q->red=RoundToQuantum(pixel.red); 1150 1145 if ((channel & GreenChannel) != 0) 1151 q->green=RoundToQuantum(pixel.green +bias);1146 q->green=RoundToQuantum(pixel.green); 1152 1147 if ((channel & BlueChannel) != 0) 1153 q->blue=RoundToQuantum(pixel.blue +bias);1148 q->blue=RoundToQuantum(pixel.blue); 1154 1149 if ((channel & OpacityChannel) != 0) 1155 1150 { … … 1162 1157 kernel_pixels++; 1163 1158 } 1164 q->opacity=RoundToQuantum(pixel.opacity +bias);1159 q->opacity=RoundToQuantum(pixel.opacity); 1165 1160 } 1166 1161 if (((channel & IndexChannel) != 0) && … … 1178 1173 kernel_indexes++; 1179 1174 } 1180 blur_indexes[y]=RoundToQuantum(pixel.index +bias);1175 blur_indexes[y]=RoundToQuantum(pixel.index); 1181 1176 } 1182 1177 } … … 1201 1196 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 1202 1197 if ((channel & RedChannel) != 0) 1203 q->red=RoundToQuantum(gamma*pixel.red +bias);1198 q->red=RoundToQuantum(gamma*pixel.red); 1204 1199 if ((channel & GreenChannel) != 0) 1205 q->green=RoundToQuantum(gamma*pixel.green +bias);1200 q->green=RoundToQuantum(gamma*pixel.green); 1206 1201 if ((channel & BlueChannel) != 0) 1207 q->blue=RoundToQuantum(gamma*pixel.blue +bias);1202 q->blue=RoundToQuantum(gamma*pixel.blue); 1208 1203 if ((channel & OpacityChannel) != 0) 1209 1204 { … … 1216 1211 kernel_pixels++; 1217 1212 } 1218 q->opacity=RoundToQuantum(pixel.opacity +bias);1213 q->opacity=RoundToQuantum(pixel.opacity); 1219 1214 } 1220 1215 if (((channel & IndexChannel) != 0) && … … 1236 1231 kernel_indexes++; 1237 1232 } 1238 blur_indexes[y]=RoundToQuantum(gamma*pixel.index +bias);1233 blur_indexes[y]=RoundToQuantum(gamma*pixel.index); 1239 1234 } 1240 1235 } … … 2453 2448 2454 2449 MagickPixelPacket 2455 zero;2450 bias; 2456 2451 2457 2452 OffsetInfo … … 2513 2508 status=MagickTrue; 2514 2509 progress=0; 2515 GetMagickPixelPacket(image,& zero);2510 GetMagickPixelPacket(image,&bias); 2516 2511 image_view=AcquireCacheView(image); 2517 2512 blur_view=AcquireCacheView(blur_image); … … 2558 2553 2559 2554 k=kernel; 2560 qixel= zero;2555 qixel=bias; 2561 2556 if (((channel & OpacityChannel) == 0) || (image->matte == MagickFalse)) 2562 2557 { … … 3221 3216 3222 3217 MagickPixelPacket 3223 zero;3218 bias; 3224 3219 3225 3220 MagickRealType … … 3288 3283 status=MagickTrue; 3289 3284 progress=0; 3290 GetMagickPixelPacket(image,& zero);3285 GetMagickPixelPacket(image,&bias); 3291 3286 image_view=AcquireCacheView(image); 3292 3287 blur_view=AcquireCacheView(blur_image); … … 3354 3349 } 3355 3350 normalize=0.0; 3356 qixel= zero;3351 qixel=bias; 3357 3352 if (((channel & OpacityChannel) == 0) || (image->matte == MagickFalse)) 3358 3353 { … … 3771 3766 3772 3767 MagickPixelPacket 3773 zero;3774 3775 MagickRealType3776 3768 bias; 3777 3769 … … 3855 3847 status=MagickTrue; 3856 3848 progress=0; 3857 GetMagickPixelPacket(image,& zero);3858 bias=image->bias;3849 GetMagickPixelPacket(image,&bias); 3850 SetMagickPixelPacketBias(image,&bias); 3859 3851 image_view=AcquireCacheView(image); 3860 3852 blur_view=AcquireCacheView(blur_image); … … 3913 3905 u; 3914 3906 3915 pixel= zero;3907 pixel=bias; 3916 3908 k=kernel; 3917 3909 gamma=0.0; … … 3938 3930 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 3939 3931 if ((channel & RedChannel) != 0) 3940 q->red=RoundToQuantum(gamma*pixel.red +bias);3932 q->red=RoundToQuantum(gamma*pixel.red); 3941 3933 if ((channel & GreenChannel) != 0) 3942 q->green=RoundToQuantum(gamma*pixel.green +bias);3934 q->green=RoundToQuantum(gamma*pixel.green); 3943 3935 if ((channel & BlueChannel) != 0) 3944 q->blue=RoundToQuantum(gamma*pixel.blue +bias);3936 q->blue=RoundToQuantum(gamma*pixel.blue); 3945 3937 } 3946 3938 if ((channel & OpacityChannel) != 0) … … 3965 3957 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : 3966 3958 gamma); 3967 q->opacity=RoundToQuantum(gamma*pixel.opacity +bias);3959 q->opacity=RoundToQuantum(gamma*pixel.opacity); 3968 3960 } 3969 3961 } … … 3990 3982 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : 3991 3983 gamma); 3992 blur_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);3984 blur_indexes[x]=RoundToQuantum(gamma*pixel.index); 3993 3985 } 3994 3986 } … … 4021 4013 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 4022 4014 if ((channel & RedChannel) != 0) 4023 q->red=RoundToQuantum(gamma*pixel.red +bias);4015 q->red=RoundToQuantum(gamma*pixel.red); 4024 4016 if ((channel & GreenChannel) != 0) 4025 q->green=RoundToQuantum(gamma*pixel.green +bias);4017 q->green=RoundToQuantum(gamma*pixel.green); 4026 4018 if ((channel & BlueChannel) != 0) 4027 q->blue=RoundToQuantum(gamma*pixel.blue +bias);4019 q->blue=RoundToQuantum(gamma*pixel.blue); 4028 4020 } 4029 4021 if ((channel & OpacityChannel) != 0) … … 4048 4040 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : 4049 4041 gamma); 4050 q->opacity=RoundToQuantum(pixel.opacity +bias);4042 q->opacity=RoundToQuantum(pixel.opacity); 4051 4043 } 4052 4044 } … … 4075 4067 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : 4076 4068 gamma); 4077 blur_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);4069 blur_indexes[x]=RoundToQuantum(gamma*pixel.index); 4078 4070 } 4079 4071 } … … 4449 4441 4450 4442 MagickPixelPacket 4451 zero;4443 bias; 4452 4444 4453 4445 RandomInfo … … 4487 4479 status=MagickTrue; 4488 4480 progress=0; 4489 GetMagickPixelPacket(spread_image,& zero);4481 GetMagickPixelPacket(spread_image,&bias); 4490 4482 width=GetOptimalKernelWidth1D(radius,0.5); 4491 4483 resample_filter=AcquireResampleFilterThreadSet(image,MagickTrue,exception); … … 4520 4512 } 4521 4513 indexes=GetCacheViewAuthenticIndexQueue(image_view); 4522 pixel= zero;4514 pixel=bias; 4523 4515 id=GetOpenMPThreadId(); 4524 4516 for (x=0; x < (long) spread_image->columns; x++) … … 4625 4617 4626 4618 MagickPixelPacket 4627 zero;4619 bias; 4628 4620 4629 4621 MagickRealType … … 4648 4640 status=MagickTrue; 4649 4641 progress=0; 4650 GetMagickPixelPacket(image,& zero);4642 GetMagickPixelPacket(image,&bias); 4651 4643 image_view=AcquireCacheView(image); 4652 4644 unsharp_view=AcquireCacheView(unsharp_image); … … 4686 4678 indexes=GetCacheViewVirtualIndexQueue(image_view); 4687 4679 unsharp_indexes=GetCacheViewAuthenticIndexQueue(unsharp_view); 4688 pixel= zero;4680 pixel=bias; 4689 4681 for (x=0; x < (long) image->columns; x++) 4690 4682 { -
ImageMagick/trunk/magick/fx.c
r404 r530 866 866 867 867 MagickPixelPacket 868 zero;868 bias; 869 869 870 870 MagickRealType 871 bias,872 871 gamma; 873 872 … … 955 954 status=MagickTrue; 956 955 progress=0; 957 GetMagickPixelPacket(image,& zero);958 bias=image->bias;956 GetMagickPixelPacket(image,&bias); 957 SetMagickPixelPacketBias(image,&bias); 959 958 image_view=AcquireCacheView(image); 960 959 convolve_view=AcquireCacheView(convolve_image); … … 1012 1011 u; 1013 1012 1014 pixel= zero;1013 pixel=bias; 1015 1014 k=normal_kernel; 1016 1015 kernel_pixels=p; … … 1029 1028 } 1030 1029 if ((channel & RedChannel) != 0) 1031 q->red=RoundToQuantum(pixel.red +bias);1030 q->red=RoundToQuantum(pixel.red); 1032 1031 if ((channel & GreenChannel) != 0) 1033 q->green=RoundToQuantum(pixel.green +bias);1032 q->green=RoundToQuantum(pixel.green); 1034 1033 if ((channel & BlueChannel) != 0) 1035 q->blue=RoundToQuantum(pixel.blue +bias);1034 q->blue=RoundToQuantum(pixel.blue); 1036 1035 if ((channel & OpacityChannel) != 0) 1037 1036 { … … 1047 1046 kernel_pixels+=image->columns+width; 1048 1047 } 1049 q->opacity=RoundToQuantum(pixel.opacity +bias);1048 q->opacity=RoundToQuantum(pixel.opacity); 1050 1049 } 1051 1050 if (((channel & IndexChannel) != 0) && … … 1066 1065 kernel_indexes+=image->columns+width; 1067 1066 } 1068 convolve_indexes[x]=RoundToQuantum(pixel.index +bias);1067 convolve_indexes[x]=RoundToQuantum(pixel.index); 1069 1068 } 1070 1069 } … … 1093 1092 gamma=1.0/(fabs((double) gamma) <= MagickEpsilon ? 1.0 : gamma); 1094 1093 if ((channel & RedChannel) != 0) 1095 q->red=RoundToQuantum(gamma*pixel.red +bias);1094 q->red=RoundToQuantum(gamma*pixel.red); 1096 1095 if ((channel & GreenChannel) != 0) 1097 q->green=RoundToQuantum(gamma*pixel.green +bias);1096 q->green=RoundToQuantum(gamma*pixel.green); 1098 1097 if ((channel & BlueChannel) != 0) 1099 q->blue=RoundToQuantum(gamma*pixel.blue +bias);1098 q->blue=RoundToQuantum(gamma*pixel.blue); 1100 1099 if ((channel & OpacityChannel) != 0) 1101 1100 { … … 1111 1110 kernel_pixels+=image->columns+width; 1112 1111 } 1113 q->opacity=RoundToQuantum(pixel.opacity +bias);1112 q->opacity=RoundToQuantum(pixel.opacity); 1114 1113 } 1115 1114 if (((channel & IndexChannel) != 0) && … … 1134 1133 kernel_indexes+=image->columns+width; 1135 1134 } 1136 convolve_indexes[x]=RoundToQuantum(gamma*pixel.index +bias);1135 convolve_indexes[x]=RoundToQuantum(gamma*pixel.index); 1137 1136 } 1138 1137 } -
ImageMagick/trunk/magick/pixel-private.h
r1 r530 84 84 } 85 85 86 static inline void SetMagickPixelPacketBias(const Image *image, 87 MagickPixelPacket *pixel) 88 { 89 pixel->red=image->bias; 90 pixel->green=image->bias; 91 pixel->blue=image->bias; 92 pixel->opacity=image->bias; 93 pixel->index=image->bias; 94 } 95 86 96 static inline void SetPixelPacket(const Image *image, 87 97 const MagickPixelPacket *pixel,PixelPacket *color,IndexPacket *index)
