Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
1

Класс resize image , выводятся каракули на экран

07.06.2016, 22:50. Просмотров 404. Ответов 6
Метки нет (Все метки)

Использую класс
resize
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
class SimpleImage {
 
   var $image;
   var $image_type;
 
   function load($filename) {
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image,$filename);
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image,$filename);
      }
      if( $permissions != null) {
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image);
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image);
      }
   }
   function getWidth() {
      return imagesx($this->image);
   }
   function getHeight() {
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   }
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100;
      $this->resize($width,$height);
   }
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;
   }
}


Из больших пытаюсь сделать миниатюры(проблемы нет) , сразу с выводом на экран без сохранения.
PHP
1
2
3
4
5
6
$image = new SimpleImage();
        foreach ($result as $key => $value) {
            $image->load(F_PATCH.'/system/'.getMaxImage($value['images2']));
            $image->resize(300,220);
            $result[$key]['images2'] = $image->output();
        }
Если возвращаю данные без заголовка
PHP
1
header('Content-Type: image/jpeg');
ТО на экране каракули (���i��\ӵ22��ϷҴ#Q�ͷb��*���X���nŖ�1�) HT���6>����|ñh΃�$�Op�q)
C Заглоовком , то тогда кроме 1й картинки ничего не выводится больше на экран, дальнейший код просто не отрабатывет.
Искал пробелы перед <?php нету.
Ставил заголовок в самый верх не помогает.
файлы в UTF-8 без BOM
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2016, 22:50
Ответы с готовыми решениями:

Как сделать вывод русских букв?А то выводятся каракули
Здравствуйте! Как сделать вывод русский букв? А то я пишу:printf(&quot;текст&quot;); и при выполнении...

Почему на консоли вместо русских букв выводятся каракули ?
Locale.setDefault(new Locale(Locale.RUSSIAN)) почему на консоли вместо русских букв выводятся...

Кодировка бд. При работе на локальном хосте отображалось нормально. На хостинге выводятся каракули.
Приветствую. При работе на локальном хосте БД выводила данные корректно. При выводе из БД на...

Изменение параметров изображений Matlab/ image resize
Друзья подскажите! Имею базу данных изображений (кол-во изображений может варьироваться)...

Класс "Книга". Как убрать каракули?
Разработать классы для описанных ниже объектов. Включить методы set (...), get (...), show (...)....

6
Jewbacabra
Эксперт PHP
4036 / 3318 / 1429
Регистрация: 24.04.2014
Сообщений: 10,022
07.06.2016, 22:58 2
Цитата Сообщение от maruo Посмотреть сообщение
сразу с выводом на экран без сохранения
Если открыть в текстовом редакторе изображение, и в конец добавить еще несколько изображений как думаешь какой будет результат? Тут тоже самое.
1
maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
07.06.2016, 23:01  [ТС] 3
Jewbacabra, Так по описанию класса, он это позволяет делать вроде? или только по 1му?
0
Jewbacabra
Эксперт PHP
4036 / 3318 / 1429
Регистрация: 24.04.2014
Сообщений: 10,022
07.06.2016, 23:06 4
Цитата Сообщение от maruo Посмотреть сообщение
Так по описанию класса, он это позволяет делать вроде?
Кто позволяет? При чем тут описание класса? Есть например формат png, у него есть определенная структура, которую надо строго соблюдать.
1
maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
07.06.2016, 23:07  [ТС] 5
Jewbacabra, Ну то есть мне никак нельзя сделать так что бы в цикле поменять размеры изображений (не сохраняя) и отдать на них ссылки?
0
Jewbacabra
Эксперт PHP
4036 / 3318 / 1429
Регистрация: 24.04.2014
Сообщений: 10,022
07.06.2016, 23:21 6
Цитата Сообщение от maruo Посмотреть сообщение
отдать на них ссылки?
Цитата Сообщение от maruo Посмотреть сообщение
не сохраняя
Ссылка ведь должна на что-то ссылаться, а чтобы это что-то было его надо куда-то положить, т.е. сохранить.
На самом деле в src можно поместить и закодированные в base64 бинарные данные, но не надо так делать, сохранять в файл гораздо лучше
1
maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
07.06.2016, 23:25  [ТС] 7
Jewbacabra, лады будем сохранять
0
07.06.2016, 23:25
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2016, 23:25

How can I resize all controls or just resize the space between them?
Hi. How can I resize all controls or just resize the space between them, when the form is resized...

Ошибка в двумерном массиве, программа проста: обьявляем и инициализируем двумерный массив и выводим на экран, на экране одни каракули!!!
В чем проблема, компилятор ошибок не выдает, и сделал вроде все правильно!!!!?? #include...

На экран данные не выводятся
ребят вот код #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.