0
The Crop in the image works, generating the cropped image at the end.
How can I upload the cropped image (Crop) with PHP?
PHP ()
<?php
// memory limit (nem todo server aceita)
ini_set("memory_limit","50M");
set_time_limit(0);
// processa arquivo
$imagem = ( isset( $_FILES['imagem'] ) && is_array( $_FILES['imagem'] ) ) ? $_FILES['imagem'] : NULL;
$tem_crop = false;
$img = '';
// valida a imagem enviada
if( $imagem['tmp_name'] )
{
// armazena dimensões da imagem
$imagesize = getimagesize( $imagem['tmp_name'] );
if( $imagesize !== false )
{
// move a imagem para o servidor
if( move_uploaded_file( $imagem['tmp_name'], $imagem['name'] ) )
{
include( 'm2brimagem.class.php' );
$oImg = new m2brimagem( $imagem['name'] );
// valida via m2brimagem
if( $oImg->valida() == 'OK' )
{
// redimensiona (opcional, só pra evitar imagens muito grandes)
$oImg->redimensiona( '500', '', '' );
// grava nova imagem
$oImg->grava( $imagem['name'] );
// novas dimensões da imagem
$imagesize = getimagesize( $imagem['name'] );
$img = '<img src="'.$imagem['name'].'" id="jcrop" '.$imagesize[3].' />';
$preview = '<img src="'.$imagem['name'].'" id="preview" '.$imagesize[3].' />';
$tem_crop = true;
}
}
}
}
?>
Jquery
<script type="text/javascript">
var img = '<?php echo $imagem['name']; ?>';
$(function(){
$('#jcrop').Jcrop({
onChange: exibePreview,
onSelect: exibePreview,
minSize : [ 200, 200 ],
maxSize : [ 200, 200 ],
allowResize : false,
addClass : 'custom'
});
$('#btn-crop').click(function(){
$.post( 'crop.php', {
img:img,
x: $('#x').val(),
y: $('#y').val(),
w: $('#w').val(),
h: $('#h').val()
}, function(){
$('#div-jcrop').html( '<img src="' + img + '?' + Math.random() + '" width="'+$('#w').val()+'" height="'+$('#h').val()+'" />' );
$('#debug').hide();
$('#tit-jcrop').html('Feito!<br /><a href="exemplo2.php">enviar outra imagem</a>');
});
return false;
});
});
function exibePreview(c)
{
var rx = 100 / c.w;
var ry = 100 / c.h;
$('#preview').css({
width: Math.round(rx * <?php echo $imagesize[0]; ?>) + 'px',
height: Math.round(ry * <?php echo $imagesize[1]; ?>) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
$('#x').val(c.x);
$('#y').val(c.y);
$('#x2').val(c.x2);
$('#y2').val(c.y2);
$('#w').val(c.w);
$('#h').val(c.h);
};
</script>
this question does not match my code, what I need is just upload the cropped image, how can I do this?
– Wagner
See Maria’s answer: https://answall.com/a/30999/3635, test and tell if it works.
– Guilherme Nascimento
read this https://php.eduardokraus.com/upload-de-imagens-com-php
– Jasar Orion