2013-08-05 5 views
0

Могу ли я знать, есть ли какие-либо простые коды для масштабирования изображений, которые я извлечил из своей базы данных для отображения. Есть много решений, но, похоже, все они довольно сложны для меня.Простое масштабирование изображений PHP

В принципе, я просто получаю файл изображения из базы данных и отображаю его. Я хочу, чтобы изображения отображались в одинаковых размерах.

+0

http://stackoverflow.com/questions/4590441/php-thumbnail-image-resizing-with-proportions?rq=1 – nand

ответ

4

Если вы ищете для простоты, я предлагаю вам использовать CSS, чтобы масштабировать изображение.

Посмотрите на эту угрозу: Resize image proportionally with CSS?

Вы также можете использовать свойство CSS клип, чтобы обрезать изображение, как вы хотите, чтобы это было: http://www.w3schools.com/cssref/pr_pos_clip.asp

+0

очень благодарен спасибо! должен принять такой подход –

2
<?php 
$image = new Imagick($filename); 
$image->resizeImage(200,200, imagick::FILTER_LANCZOS, 0.9, true); 
?> 

вам потребуется Imagemagik API для этого или сделать это с помощью CSS образом, как выше сказал

+0

благодарит за внимание! –

0

Размер изображения несколько не зависит от размера файла поскольку разрешение по размеру бит является основным фактором в размере файла. Но для масштабирования и сохранения соотношения сторон (так что это не выглядит забавным) вы найдете пропорциональный эквивалент высоты с фиксированной шириной цели. Изображения, хранящиеся в таблице, представляют большой успех по сравнению с хранением их в веб-хранилище, но мы можем обсудить альтернативы этому.

например, скажем, вы хотите иметь фиксированную ширину 500, но изображение составляет 1280x900.

cross умножить коэффициент 1280/900 с 500/x, чтобы привести к (450000) = 1280x, а теперь решить X = (450000)/1280 или x = 351.5625 для новой высоты.

поэтому мы можем перевести это на PHP, как:

//detect picture size 
list($width, $height, $type, $attr) = getimagesize("image_file_name.gif"); 

Так как мы уже знаем из целевой ширины, позволяет получить целевую высоту, используя упрощенную версию нашего перекрестного умножения:

$newHeight=($height*500)/$width; 

Теперь все, что нам нужно сделать, это использовать метод resizer, так как теперь у нас тоже высота цели.

это хорошая статья на эту тему: https://dzone.com/articles/resize-image-class-php

У меня нет сейчас времени для подробного поста.