Drupal 7 如何覆盖Drupal插件&x27;s函数?

Drupal 7 如何覆盖Drupal插件&x27;s函数?,drupal-7,imagemagick,Drupal 7,Imagemagick,我是Drupal新手 我正在使用imagemagick插件来修改图像。我的问题是当它调整GIF图像大小时,图像被弄乱了。我在互联网上搜索解决方案,发现了与此相关的更改。 但我不想将代码更改直接写入插件模块文件。 我想重写它的image\u imagemagick\u resize()函数。我不知道如何覆盖它,以及在哪里放置它的覆盖功能 默认功能:- function image_imagemagick_resize(stdClass $image, $width, $height) { $i

我是Drupal新手

我正在使用imagemagick插件来修改图像。我的问题是当它调整GIF图像大小时,图像被弄乱了。我在互联网上搜索解决方案,发现了与此相关的更改。 但我不想将代码更改直接写入插件模块文件。 我想重写它的image\u imagemagick\u resize()函数。我不知道如何覆盖它,以及在哪里放置它的覆盖功能

默认功能:-

function image_imagemagick_resize(stdClass $image, $width, $height) {
  $image->ops[] = '-resize ' . (int) $width . 'x' . (int) $height . '!';
  $image->info['width'] = $width;
  $image->info['height'] = $height;
  return TRUE;
}
覆盖功能:

function imageapi_imagemagick_image_resize(&$image, $width, $height) {
  $extra = '';
  if($image->info['mime_type'] == 'image/gif') {
    $extra = '-coalesce ';
  }
  $image->ops[] = $extra . '-resize '. (int) $width .'x'. (int) $height .'!';
  $image->info['width'] = $width;
  $image->info['height'] = $height;
  return TRUE;
}

谢谢

希望
image\u imagemagick\u resize
通过
\u image\u imagemagick\u alter\u invoke调用alter钩子

function image\u imagemagick\u resize($source、$dest、$width、$height){
$args=array('resize'=>'-resize'.(int)$width.'x'.(int)$height.!');
$args=\u image\u imagemagick\u alter\u invoke('resize',$source,$args);
返回_image_imagemagick_convert($source、$dest、$args);
}
函数\u image\u imagemagick\u alter\u invoke($op、$filepath、$args){
foreach(模块实现('imagemagick\u alter')为$module){
$function=$module'.\u imagemagick\u alter';
$function($op,$filepath,$args);
}
返回$args;
}
因此,您可以通过在自定义模块中实现
hook\u imagemagick\u alter()
来覆盖调整大小参数:

函数mymodule\u imagemagick\u alter($op、$filepath和$args){
#更改$args。。。
}