0

我有不同尺寸的图像(小于 200x200 像素)我希望它们是 200x200 像素,方法是添加具有给定颜色的空白空间(例如白色)。我尝试使用裁剪库裁剪它们: http: //codeigniter.com/user_guide/libraries/image_lib.html 我不工作。这是我没有成功使用的一些代码:

$config = Array(
 'image_library' => 'gd2',
 'source_image' => '/path/to/my/image.jpg',
 'new_image' => '/path/to/my/small/image.jpg',
 'thumb_marker' => '',
 'create_thumb' => TRUE,
 'maintain_ratio' => TRUE,
 'width' => '200',
 'height' => '200'
);

$this->load->library('image_lib', $config);
if (!$this->image_lib->resize())
{
 $this->session->set_flashdata('message_error',  $this->image_lib->display_errors());
 redirect('/mon_controller', 'location');
}

$config['source_image'] = '/path/to/my/small/image.jpg';
$config['x_axis'] = '200';
$config['y_axis'] = '200';

$this->image_lib->initialize($config);

if ( ! $this->image_lib->crop())
{
 $this->session->set_flashdata('message_error',  $this->image_lib->display_errors());
 redirect('/my_controller', 'location');
}

编辑:我认为 lib 符合我的需求: http: //www.matmoo.com/digital-dribble/codeigniter/image_moo/

4

2 回答 2

1

我想你需要这个。

http://www.matmoo.com/digital-dribble/codeigniter/image_moo/
于 2012-05-22T13:30:37.013 回答
1

很抱歉没有回答您的问题,但我建议使用 CSS 来完成,这样您就可以保留原始图像并可以在以后的任何地方使用它们(如果您的设计明天发生变化怎么办?或者想在另一个没有的页面中使用它们)需要相同图像的尺寸要求吗?)。

只需将图像放入 div 中,并使用margin: auto;(或text-align: center,现在不能说)设置样式以使其水平居中。
要使其垂直居中,您可以使用这个 jQuery 函数:

(function ($) {
$.fn.vAlign = function(){
    return this.each(function(i){
    var ah = $(this).height();
    var ph = $(this).parent().height();
    var mh = Math.ceil((ph-ah) / 2);
    $(this).css('margin-top', mh);
    });
};

然后:$('#image').vAlign()

于 2012-05-22T13:37:36.463 回答