Динамическое изменение размеров изображений - PullRequest
2 голосов
/ 11 ноября 2010

Я работаю над проектом, в котором мы пытаемся адаптировать и изменить размеры изображений шаблонов до различных разрешений. Например, если веб-сайт просматривается с шириной 800px (800x600) и шириной 1024px или более, размер изображения следует просматривать с таким же качеством. Я имел в виду использовать спрайт с 3 типами изображений для каждого диапазона этого шаблона, но я ищу другие идеи, возможно, php gd? Любое решение Python?

Ответы [ 5 ]

4 голосов
/ 11 ноября 2010

Ну, для изменения размера было бы, конечно, лучше использовать GD ... Но я думаю, что он проиндексирован.Таким образом, у вас есть сценарий загрузки, который автоматически генерирует изображения других размеров и сохраняет их где-то.

Однако важно, будет ли у вас больше места на диске или производительность ... Производительность ухудшится, если вымногие люди смотрят эти изображения.Дисковое пространство будет ухудшаться, если у вас будет много этих изображений.

2 голосов
/ 11 ноября 2010

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

Если вам нужно изменить размер для любого возможного разрешения, вам понадобится библиотека, чтобы сделать это для вас. В PHP хороши GD или ImageMagik .

Если вы сделаете это, вы можете добавить кеширование для наиболее распространенных разрешений. Это займет больше места на диске, но сэкономит вам стоимость пересчета всех изображений каждый раз.

Обратите внимание, что может быть трудно определить истинное разрешение. Если размер окна браузера изменяется, разрешение, которое вы считаете экраном, может не соответствовать фактическому разрешению, которое может видеть пользователь. То же самое может произойти, если у них открыты панели инструментов или боковые панели.

2 голосов
/ 11 ноября 2010

Библиотека изображений Python обеспечит динамическое изменение размера, обработку и т. Д.

1 голос
/ 11 ноября 2010

Получить ширину внутреннего окна довольно сложно, так как разные браузеры используют разные переменные.Тем не менее, это то, что я использую на своем сайте.Он довольно надежно получает ширину внутреннего окна, а затем устанавливает ширину / высоту изображения.Не должно быть слишком сложно изменить этот код, чтобы установить src желаемого изображения.

function set_image_sizes(){
    if (window.innerHeight != undefined) {
        height = window.innerHeight;
        width = window.innerWidth;
    } else if (document.documentElement.clientHeight > 0) {
        height = document.documentElement.clientHeight;
        width = document.documentElement.clientWidth;
    } else {
        height = document.body.clientHeight;
        width = document.body.clientWidth;
    }

    $('#image').css('height', height);
    $('#image').css('width', width);

}
1 голос
/ 11 ноября 2010

Почему бы не изменить размер изображения на клиенте с помощью JavaScript?

<head>
<script>
function resize() {
    ww = window.innerWidth
    wh = window.innerHeight
    photo = document.getElementById("photo")
    // You probably wouldn't actually make the image fill the window, you'd pick
    // some appropriate size.
    photo.setAttribute("width", ww)
    photo.setAttribute("height", wh)
}
</head>
<body onload="resize()" onresize="resize()">
<img id="photo" src="photo.jpg">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...