У меня получилось, коряво конечно сделал...
Копируем watermark.png в папку с картинками.
В system/library/image.php переделал функцию watermark следующим образом:
В начале
//$watermark = $this->create($file); $watermark = imagecreatefrompng($file); $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark);
model/tool/image.php переделал следующим образом
<?phpclass ModelToolImage extends Model { function resize($filename, $width, $height) { if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) { return; } $old_image = $filename; $new_image = 'cache/' . substr($filename, 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.jpg'; if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) { $path = ''; $directories = explode('/', dirname(str_replace('../', '', $new_image))); foreach ($directories as $directory) { $path = $path . '/' . $directory; if (!file_exists(DIR_IMAGE . $path)) { @mkdir(DIR_IMAGE . $path, 0777); } } $image = new Image(DIR_IMAGE . $old_image); $image->resize($width, $height); if(($width > 110)&&($height > 110)&&($width < 130)&&($height < 130)){ $image->watermark(HTTP_IMAGE . 'watermark_small.png', 'bottomright'); } if(($width > 150)&&($height > 150)){ $image->watermark(HTTP_IMAGE . 'watermark.png', 'bottomright'); } $image->save(DIR_IMAGE . $new_image); } if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { return HTTPS_IMAGE . $new_image; } else { return HTTP_IMAGE . $new_image; } }}?>
Это нужно было для того,чтобы вставлять разные watermark'и для превьюшек и больших картинок