【问题标题】:image cropping with codeigniter使用 codeigniter 进行图像裁剪
【发布时间】:2010-08-23 20:15:41
【问题描述】:

我正在使用 jcrop 和 codeigniter 以允许用户裁剪他们上传的图像,我希望将图像裁剪为 90x60 的大小,但我尝试的任何方法似乎都不起作用,我当前的代码如下所示,

控制器

function save_crop() {
        $this->load->library('image_lib');

        $config['image_library'] = 'gd2';
        //$config['library_path'] = '/usr/X11R6/bin/';
        $config['source_image'] = './media/images/uploads/company_uploads/' . $this->input->post('image_name');
        //$config['new_image'] = './media/images/uploads/company_uploads/cropped' . $this->input->post('image_name').'_'.time();
        //die($config['source_image']);
        $config['x_axis'] = $this->input->post('x');
        $config['y_axis'] = $this->input->post('y');
        $config['width'] = $this->input->post('w');
        $config['height'] = $this->input->post('h');
        $config['maintain_ration'] = TRUE;
        $config['dynamic_output'] = TRUE;
        $this->image_lib->initialize($config);

        if(!$this->image_lib->crop()) {
            echo $this->image_lib->display_errors();
        } else {
            echo "Success";
        }
    }

JAVASCRIPT

$('#jcrop_target').Jcrop({
        onChange: showPreview,
        onSelect: showCoords,
        aspectRatio: 1,
        addClass: 'custom',
        maxSize: [90,60]
    });

    function showPreview(coords)
    {
        var rx = 100 / coords.w;
        var ry = 100 / coords.h;

        $('#preview').css({
            width: Math.round(rx * 500) + 'px',
            height: Math.round(ry * 370) + 'px',
            marginLeft: '-' + Math.round(rx * coords.x) + 'px',
            marginTop: '-' + Math.round(ry * coords.y) + 'px'
        });
    };

    function showCoords(c)
    {
        $('#x').val(c.x);
        $('#y').val(c.y);
        $('#x2').val(c.x2);
        $('#y2').val(c.y2);
        $('#w').val(c.w);
        $('#h').val(c.h);
    };

HTML

<?php if(isset($upload_data)) :?>
            <?php if($upload_data['image_width'] > 90 || $upload_data['image_height'] > 60) : ?>
            <p>Your image is a little large</p>
            <form action="<?php echo base_url();?>employer/save_crop" method="post">
            <div id="uploaded_image">
                <img src="<?php echo base_url();?>media/images/uploads/company_uploads/<?php echo $upload_data['file_name'];?>" id="jcrop_target"/>
            </div>
                <div id="uploaded_preview">
                <img src="<?php echo base_url();?>media/images/uploads/company_uploads/<?php echo $upload_data['file_name'];?>" id="preview"/>
                </div>
                <input type="hidden" name="x" id="x" />
                <input type="hidden" name="y" id="y" />
                <input type="hidden" name="x2" id="x2" />
                <input type="hidden" name="y2" id="y2" />
                <input type="text" name="w" id="w" />
                <input type="text" name="h" id="h" />
                <input type="hidden" name="image_name" value="<?php echo $upload_data['file_name'];?>"/>
                <input type="submit" name="crop_image" value="Crop" />
            </form>
            <?php endif; ?>
        <?php endif; ?>

【问题讨论】:

    标签: php javascript codeigniter image-manipulation gd


    【解决方案1】:
    $config['maintain_ratio'] = TRUE;
    

    您必须输入maintain_ratio 而不是maintain_ration

    【讨论】:

      【解决方案2】:

      如果您发布了 Codeigniter 抛出的错误消息,这将使我们更有帮助。

      您是否使用 Codeigniter 的“表单助手”进行验证?如果在 jCrop 中正确设置了“maxSize”,那么您应该不会有任何问题...

      请出错:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-06
        • 2011-09-02
        • 1970-01-01
        • 2019-07-09
        • 1970-01-01
        • 2014-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多