如何在WordPress中對圖像進行灰度處理


您是否曾經想過在上載時是否有一種方法可以自動在WordPress中對圖像進行灰度處理? 好吧,想知道的時間已經過去了。 在本文中,我們將向您展示如何使用一些簡單的PHP圖像處理工具和WordPress函數在上傳時自動對圖像進行灰度處理。 您可以將灰度圖像用於懸停,滑塊,圖庫或其他任何您喜歡的圖像。

WordPress中的灰度圖像

您需要做的第一件事是打開主題的functions.php文件並添加以下代碼:

add_action('after_setup_theme','themename_bw_size');
function themename_bw_size() {
	add_image_size('themename-bw-image', 100, 100, true);
}

上面的代碼只是為上傳器添加了額外的圖片尺寸。 硬裁剪時,尺寸設置為100 x 100像素。 您可以更改尺寸以適合您的需求。 完成此操作後,需要添加以下代碼:

add_filter('wp_generate_attachment_metadata','themename_bw_filter');
function themename_bw_filter($meta) {
	$file = wp_upload_dir();
	$file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file'];
	list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
	$image = wp_load_image($file);
	imagefilter($image, IMG_FILTER_GRAYSCALE);
	switch ($orig_type) {
		case IMAGETYPE_GIF:
			imagegif( $image, $file );
			break;
		case IMAGETYPE_PNG:
			imagepng( $image, $file );
			break;
		case IMAGETYPE_JPEG:
			imagejpeg( $image, $file );
			break;
	}
	return $meta;
}

上面的代碼幾乎告訴上傳者為您上傳的圖像創建額外的尺寸。 將其裁剪為上一步中指定的尺寸。 然後應用圖像濾鏡:灰度。

如果您要對帖子縮略圖進行此操作,則可以在主題中將其顯示為:


如果要對特定附件執行此操作,則可以使用wp_get_attachment_image函數。

注意:您應該將主題名稱更改為您的主題名稱。

這個出色的技巧的所有功勞歸功於Otto。