Changeset 11642 for ImageMagick/trunk

Show
Ignore:
Timestamp:
07/15/08 15:41:02 (3 months ago)
Author:
cristy
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ImageMagick/trunk/magick/resize.c

    r11641 r11642  
    21802180 
    21812181  /* 
    2182     Acquire filter and contribution info. 
     2182    Acquire resize filter. 
    21832183  */ 
    21842184  assert(image != (Image *) NULL); 
     
    22102210    Resize image. 
    22112211  */ 
    2212   filter_image=CloneImage(image,columns,image->rows,MagickTrue,exception); 
    2213   if (filter_image == (Image *) NULL) 
    2214     { 
    2215       resize_filter=DestroyResizeFilter(resize_filter); 
    2216       return((Image *) NULL); 
    2217     } 
    2218   span=(MagickSizeType) (filter_image->columns+rows); 
    22192212  quantum=0; 
    2220   status=HorizontalFilter(resize_filter,image,filter_image,x_factor,span, 
    2221     &quantum,exception); 
    2222   resize_image=CloneImage(image,columns,rows,MagickTrue,exception); 
    2223   if (resize_image == (Image *) NULL) 
    2224     { 
    2225       filter_image=DestroyImage(filter_image); 
    2226       resize_filter=DestroyResizeFilter(resize_filter); 
    2227       return((Image *) NULL); 
    2228     } 
    2229   status|=VerticalFilter(resize_filter,filter_image,resize_image,y_factor,span, 
    2230     &quantum,exception); 
     2213  if ((columns*((MagickSizeType) image->rows+rows)) > 
     2214      (rows*((MagickSizeType) image->columns+columns))) 
     2215    { 
     2216      filter_image=CloneImage(image,columns,image->rows,MagickTrue,exception); 
     2217      if (filter_image == (Image *) NULL) 
     2218        { 
     2219          resize_filter=DestroyResizeFilter(resize_filter); 
     2220          return((Image *) NULL); 
     2221        } 
     2222      span=(MagickSizeType) (filter_image->columns+rows); 
     2223      status=HorizontalFilter(resize_filter,image,filter_image,x_factor,span, 
     2224        &quantum,exception); 
     2225      resize_image=CloneImage(image,columns,rows,MagickTrue,exception); 
     2226      if (resize_image != (Image *) NULL) 
     2227        status|=VerticalFilter(resize_filter,filter_image,resize_image,y_factor, 
     2228          span,&quantum,exception); 
     2229    } 
     2230  else 
     2231    { 
     2232      filter_image=CloneImage(image,image->columns,rows,MagickTrue,exception); 
     2233      if (filter_image == (Image *) NULL) 
     2234        { 
     2235          resize_filter=DestroyResizeFilter(resize_filter); 
     2236          return((Image *) NULL); 
     2237        } 
     2238      span=(MagickSizeType) (filter_image->rows+columns); 
     2239      status=VerticalFilter(resize_filter,image,filter_image,y_factor,span, 
     2240        &quantum,exception); 
     2241      resize_image=CloneImage(image,columns,rows,MagickTrue,exception); 
     2242      if (resize_image != (Image *) NULL) 
     2243        status|=HorizontalFilter(resize_filter,filter_image,resize_image, 
     2244          x_factor,span,&quantum,exception); 
     2245    } 
    22312246  /* 
    22322247    Free resources. 
     
    22362251  if (status == MagickFalse) 
    22372252    { 
    2238       resize_image=DestroyImage(resize_image); 
     2253      if (resize_image != (Image *) NULL) 
     2254        resize_image=DestroyImage(resize_image); 
    22392255      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); 
    22402256    }