Un utente ha chiesto informazioni su Avatar Privacy di Wordpress

Errore irreversibile PHP: avprimg: //image_editor/dummy/path.jpg

Un utente ha chiesto 👇

Il plug-in sta interrompendo il fine settimana del WP se installato insieme ad altri plug-in noti con nitidezza delle immagini. Sono stati testati con immagini alterate dalla nitidezza e immagini ridimensionate con la magia dell’immagine.

Durante il tentativo di modificare la mia immagine del profilo (superadmin), in base alla funzione AP, si è verificato il seguente tipo di errore:

PHP Fatal error: Uncaught ImagickException: unable to open image 'avprimg://image_editor/dummy/path.jpg': No such file or directory @ error/blob.c/OpenBlob/2712 in /public/wp-content/plugins/sharpen-resized-images/ajx-sharpen-resized-images.php:65

La sua linea di convinzione dice:
$image->writeImage( $resized_file );

È il loro errore, ma il file const DEFAULT_STREAM = 'avprimg://image_editor/dummy/path'; È tuo, situato in avatar-privacyincludesavatar-privacytoolsimagesclass-editor.php:39.

Questa è la prima volta che ho problemi con quei plugin taglienti. Si prega di consigliare come giocare a palla AP con quelli.

Grazie.

Autore del plugin

(@pputzer)

1 anno, 9 mesi fa

Questi plugin non sembrano essere compatibili con le copertine dei flussi PHP. L’IS avprimg è un prefisso programmato per una cartella di flusso in memoria Avatar Privacy personalizzata (eliminando l’accesso al file system durante il ridimensionamento da un avatar).

Lanciatore di thread

(@ alx359)

1 anno, 9 mesi fa

L’IS sharpen-resized-images il plugin è in realtà piuttosto breve. UN try-catch alla linea della barriera per evitare l’incidente. Cosa suggeriresti per renderlo compatibile?

add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);
function ajx_sharpen_resized_files( $resized_file ) {
	
	$progressive_jpg = apply_filters('sharpen_resized_progressive_jpg', true);

	$size = @getimagesize( $resized_file );
	if ( !$size )
		return new WP_Error('invalid_image', __('Could not read image size'), $file);
	list($orig_w, $orig_h, $orig_type) = $size;

	switch ( $orig_type ) {
		case IMAGETYPE_JPEG:
			switch ( _wp_image_editor_choose() ) {

				case "WP_Image_Editor_Imagick":
				
					$image = new Imagick( $resized_file );
					
					$image->unsharpMaskImage(0, 0.5 , 1, 0.05);

					$image->setImageCompression(Imagick::COMPRESSION_JPEG); 
					$image->setImageCompressionQuality(apply_filters( 'jpeg_quality', 90, 'edit_image' )); 

					//$image->stripImage(); 
					
					if($progressive_jpg) $image->setInterlaceScheme(Imagick::INTERLACE_PLANE); // Progressive JPEG on
					
					//alx359:try-catch
                    try {
                        $image->writeImage( $resized_file ); // Create Image
                    }
					catch (Exception $e) { // can't sharp, so return unsharped
                        return $resized_file;
                    }
                    
					$image->clear();
					$image->destroy();					
					
					break;
				
				case "WP_Image_Editor_GD":
				default:
					$image = imagecreatefromstring( file_get_contents( $resized_file ) );

					$matrix = array(
						array(apply_filters('sharpen_resized_corner',-1.2), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1.2)),
						array(apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_center',20), apply_filters('sharpen_resized_side',-1)),
						array(apply_filters('sharpen_resized_corner',-1.2), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1.2)),
					);

					$divisor = array_sum(array_map('array_sum', $matrix));
					$offset = 0;
					// Sharpen Image
					imageconvolution($image, $matrix, $divisor, $offset);
					// Progressive JPEG on
					if($progressive_jpg) imageinterlace($image, true); 
					// Create Image
					imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));

					// we don't need images in memory anymore
					imagedestroy( $image );
					
			}
			break;
		case IMAGETYPE_PNG:
			break;
		case IMAGETYPE_GIF:
			break;
	}	

	return $resized_file;
}	

Autore del plugin

(@pputzer)

1 anno, 9 mesi fa

Bene, dovrebbe fornire alcuni hook – perché questo è un codice piuttosto sgradevole in termini di compatibilità, perché non c’è modo di fare una scelta per il rafforzamento (e l’uso) _wp_image_editor_choose non è compatibile con molti altri plugin che ne forniscono le proprie sottoclassi WP_Image_Editor).

Poiché questo non viene aggiornato da 4 anni, consiglierei di cercare un altro plug-in. Per ottenere una soluzione rapida, è necessario utilizzare Imagick::writeImageFile invece di ::writeImage. Vedere # 42663 per i dettagli.

Lanciatore di thread

(@ alx359)

1 anno, 9 mesi fa

Questo è stato un suggerimento utile. Grazie!

Invece di:
$image->writeImage( $resized_file );

SEO:
$image->writeImageFile( $resized_file );

e ora non mi cade più l’immaginazione.

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *