Upload images when you do Crop with PHP

Asked

Viewed 128 times

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?

  • See Maria’s answer: https://answall.com/a/30999/3635, test and tell if it works.

  • read this https://php.eduardokraus.com/upload-de-imagens-com-php

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.