Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Фиксиран размер на снимки

Featured Replies

Здравейте. Нужно ми е малките снимки да бъдат фиксирани с големина 220х180. Сега почти всяка картинка си е с различен размер.
 
 
// Дефиниране на константи с размер за малките картинки
define("IMAGE_HEIGHT",  180);
define("IMAGE_WIDTH",  210); 
 
 
$allowed_ext  = array('jpg', 'png', 'JPG', 'jpeg', 'JPEG');
 
// Начало на обработката
if ( !empty($_FILES) ) {
// Имаме субмитнати файлове
//echo "<pre>";
//print_r($_POST);
//print_r($_FILES);
 
// Брой на субмитнатите картинки
$number_of_images = isset($_FILES['images']['name']) ? count($_FILES['images']['name']) : 0;
 
if ( $number_of_images > 0 ) {
// Извъртаме всички картинки
foreach ( $_FILES['images']['name'] as $nImagekey => $sImagaName ) {
// Файла е качен успешно, провеверки, местени и манипулации
if ( isset($_FILES['images']['error'][$nImagekey]) && $_FILES['images']['error'][$nImagekey] == UPLOAD_ERR_OK ) {
// Проверка за тип на файла
$extension = pathinfo($sImagaName, PATHINFO_EXTENSION);
 
if ( !in_array($_FILES['images']['type'][$nImagekey], $allowed_type) ) {
echo "Невалиден файлов формат!";
exit; 
} else if ( !in_array($extension, $allowed_ext) ) {
echo "Невалиден файлов формат!";
exit;
}
 
// Закачаме уникално име на файла, базирано на неговата хеш сума. 
// Ако бъдат качени два или повече еднкави файла, без значение от 
// техните имена, накрая ще има само едно налично копие от тях.
$fn  = sprintf(sha1_file($_FILES['images']['tmp_name'][$nImagekey]).'.%s', $extension);
$file_name  = sprintf(IMAGES_BIG_DIR.'%s', $fn);
$file_name_sm  = sprintf(IMAGES_SMALL_DIR.'%s', $fn);
 
// <changes>
$original_images_array[]  = $file_name;
$small_images_array[]  = $file_name_sm;
// </changes>
 
// Местим качения файл от временната директория в указаната
// Ако има роблеми с функцията move_uploaded_file(), може вместо нея да се използва функцията copy()
if ( !copy($_FILES['images']['tmp_name'][$nImagekey], $file_name) ) {
echo "Файла не може да бъде обработен.";
exit;
}
 
// Малки картинки
// Неизвестна реализация на функцията resize_image; Неизвестна променлива $latin_name;
//resize_image("../".$file_name,'210','180',IMAGES_SMALL_DIR.$latin_name."_pic_".$nImagekey.$extension);
 
// Бърза реализация - ако не ти хареса, изтрий я.
if ( strtolower($extension) == "jpg" ) {
$raw_img = imagecreatefromjpeg($file_name);
} else if ( strtolower($extension) == "png" ){
$raw_img = imagecreatefrompng($file_name);
}
 
if ( $raw_img ) {
$raw_x = imageSX($raw_img);
$raw_y = imageSY($raw_img);
 
if ($raw_x > $raw_y) {
$thumb_w = IMAGE_WIDTH;
$thumb_h = $raw_y * (IMAGE_HEIGHT / $raw_x);
} else if ($raw_x < $raw_y) {
$thumb_w = $raw_x * (IMAGE_HEIGHT / $raw_y);
$thumb_h = IMAGE_HEIGHT;
} else if ($raw_x == $raw_y) {
$thumb_w = IMAGE_WIDTH;
$thumb_h = IMAGE_HEIGHT;
}
 
$thumb = ImageCreateTrueColor($thumb_w, $thumb_h);
imagecopyresampled($thumb, $raw_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $raw_x, $raw_y); 
 
if ( strtolower($extension) == "jpg" ) {
imagejpeg($thumb, $file_name_sm);
} else if ( strtolower($extension) == "png" ){
imagepng($thumb, $file_name_sm);
}
 
imagedestroy($thumb); 
imagedestroy($raw_img);  
}
}
}
}

GD съблюдава съотношение на изходната снимка и се подстройва под близко значение на една от двете константи при преоразмеряване. Вашето желание е малко странно и доближава 5:4. Ако очаквате желания резултат следва и изходните снимки да са с подобно съотношение.

  • 1 месец по-късно...
  • Автор

Добре, но неможе да няма начин да фиксирам размерите на всяка една снимка въпреки това, че може да се попрецака малко снимката. В olx например снимките в обявите всеки един от тъмбалите са с точен размер.

Редактирано от Lenor (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.