Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать вывод картинок 
V
    Опции темы
mitris
Дата 25.6.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



Есть БД, в ней записаны URL'ы
и нужно вывести вс е картинки оттуда
я пытался пользоваться  кодом, но он не работает, помогите

Код

  $sql=mysql_query("SELECT * FROM img ORDER by id");
  while($row=mysql_fetch_array($sql))
   {
    $filename = $row["path"];
    if(file_exists($filename))
     {
      $percent = 0.5;
      list($width, $height) = getimagesize($filename);
      @header('Content-type: image/jpeg');
      $new_width = $width * $percent;
      $new_height = $height * $percent;
      $image_p = imagecreatetruecolor($new_width, $new_height);
      $image = imagecreatefromjpeg($filename);
      imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
      imagejpeg($image_p, null, 100);
    }
   }


Это сообщение отредактировал(а) mitris - 25.6.2007, 13:33
PM MAIL   Вверх
mitris
Дата 25.6.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



при использовании данного кода вместо картинки выводятся иероглифы 
типа :
Код


4А%Я&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz┌┐└┘├┤┬┴┼▓⌠■∙√≈≤≥ ╒ё╓╔╕╖╗╘╙╡Ё╢╣╤╥╦╧╨бцдефгхийрстужвьызБЦДЕФГХИЙРСТУЖВЬЫЗЪз� ��?�г╒┼+Ес┼(═┼(═┼(═┼(═┼(═┼(═┼(═┼(═┼(═┼(═²rM4pб├Id`╗▀т÷Со╟сk═Пu▀K╗K~Ю═O-8Гl}A ?У └\÷C÷[ыRr[▌ ╩6Ш▌ё маз!%G╗нА÷╝р╧р ╩ёщ╡6с▒╦;┐^÷#Л█⌡р╪рЮ0╫╧щ▄Щ╒Cг╕С▐р╧╟╣╖VЭг╣Iм╘;╒:*[{[⌡и v╟<н:┘МафIЮgiЙG╔O╘И7╨A▄щ"Дm╚,o∙щи ┐┐°.zcч╨Н╞kЙzJ2Дrт╖ES6 (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─ (╒─.ХЗd ╤═ V `<оэ.x�z°v'п▀Ъ�╢6аТШ≥'▒Z9ЖФO`цO^═Г▌GZоПмЭZv╜'°шVИ0OMю°гwЦеw─├�┐░k┐^╜*┴-©3беV╜ ннг⌡Ъ�fЙ┼Ъ�gэН ╢╞√zЩzcъ8О°s]╖┤tц╔И(▓╘6|°Ахu#─Дuш·У╚EsVеJ╛ymc·╬&u╛╔п╚╗3%ё:╚6чv╞SгJСМK╦тДK[FR╠╗С'⌠%TqХ9c°│▒·yИDd`Т╕еpф#┼5█p╙0NiPд{╢√╛TКй°Z▌О╘_Nсm╢╚4╣╣▄*╗⌡t█─ 1XЦ⌠ч╘x╙HWц╥▒к┌оьаф~АЖ;╠┐ьСз╣e░D⌡▐>┐ж╪Ъ�Xу[V╦▐ЁфдгъyИ©ш▌┐пСв╟п∙Z╪О╕╛t(╨╡╡(QEК÷JQE�QE�QE�QE�QE�QE�QE�QQнШ!8$!AЮ⌠─�Zi]ь≥>Tы ВRo[ v$█лxКУг�к╞ ▌`И╤ДЁ╧ ╗c3z(⌠Х2�©АЩm^Йe█Э╚h≥cis▓Р╗НrHиИО▄Wy╖И6ZbbжV# !Еш°Рщq·щjн╬*²й∙ъУ©cх╚▀I╣╩У╡_ФyЭ>╦ЖБАtш≥#Ы▀+┘GТТЦ▌sV┤╛"}2P│wWFЦХБ~┌╫┼А√a'ЖWЦЧg4q∙ЦтРэr ░A ▌═▌гз┼ЛЭG═-Э�l╢█EД|░8С≈tЖоLИ▄─I╝3╗оc]■╙ф╛y╒zЬ\J╞th(╒┼тК∙]J╟ ╛0A]≈┘У7╧╠йезР]▐s─AГ╞gъ5гVЪ�└Е▌4²>}о7 ╔≈ю ╖iЧ,агB@5м┼▐5ДyЬЬее7╧ытs=╪pP$_4╩│? К▄wzЦg"U`ЙNA╗НГk{Y%EV░ F▄АC╧АW'│⌠│Ьв▐y$xObU`ЙH ▄┌;ртV╟-╜╓6ХX╛1╙г▓�г5-Kъ@2<р╗п╧▐Ю═ +CцЮy3хР·гr ЩpOФi9r'%пГеJтeЩo║уХ╨}╬÷$╘l╔#uSЁ╗�╧о\░РЗГ^Ёa⌠к░7nУ╒FE|ЭДДО-о·╘W═╢QEI≤WБ█ iВfЖ"зАС'╓rЭ≤Ч╧ЕEv▓к4╡╨глЛpz⌠Qеo�╚[й╠i_╦`T5Сyi0Хp╦fгу@"╩╟0╜)ЧН7]J┘�a%;·iHHPI8╘5�VпО╢ёЕ╞⌠;y ▄^2╧$(cи qнгz⌠Mя%╨[{Ы IА^R[хYь#6IХNрzГu>Б╒ЫЫe╔╣~┤╥<}8Ауu╜Ж^}└р4k█VКfв▌щ╢▓∙ЛF@_RAьO`{╔Ё╤Ha└B⌡ �D1В�ТЦ┼[ku╤▀nБР1щ$█кHщиЪ�─��╕╞_зNпЬVг▐V╫Jо dqд╠gnp{M√у&╦┌g,L╡.xэF7}@$�ю▐╤&╓f ╓·┌╧kc'╗я$dЮ:Чt█╢QEju╓▓╡ (╒│┘Q@Q@Q@Q@Q@Q@Oc:зЙVвHD|>+⌠Л3÷б═╓e╔Xаph╡z3:░Г┐┴ъUкY╡╩Р:}+ D╬Шm┌┴tП─▓dР}═Й9Ц▄Дv╜(М╓╬╨┌й&xмцМiQrcP cЛp08b╧╪HАГ*й┼чЖ< ╜(7.┘ьНрБИ╜mRK≥вО$+╩g⌡╒ДtэFiриqk⌡{auj≥фФU░v1√ ╬М│]=²²╤÷j√╤╠,P═б╙Ч╖э⌠и'▓jzЗHД■m&Нx▐+Х╢9m>%╬вc┘я^X┘цЪ�·┘╠sхЮ└#▒[ ├Ё╖isZC{t░и{0├щ$хГ╟ПГ═хУн$CBЯVькGлJ6Ыpйxг8;^&юЦд@Щж╩╔^e]&ГQh$⌡╜B4L9 <М°Ш┼Йб:8Z^йRIг~÷? ╠∙U:▓ФKrВ┴4еу╪?{i╣L█4%┴d(r=?:V40Щ▐аЗыB┬█╖wбПХг?V▒≈│щ╘5_зъiРИиoyдеb╧Y#зm║vзр≈╕Н#ТДa[%М└7Зt╤2▒H⌡AL·▄╬└{+╙╓a^■╒ wVШх▄╔╞╣НsТT6О)F┼АBэ@ч\йг╖╠0о8"╕╞│°%NN2щбi╚═╙Wso,t}Йk≥Э╣з©xЧ∙÷,┴ O,▄K3─╕▓WvGE8Щ╕sЧ'╧-4─pёмl┐°°╙ЮТ?е÷б╠*ф╒d:╜я 3╔▒≥J∙+≤т─AХB∙э╞_AN■U7╨=╪²%вP╒┼*▌╟╒┼(�╒┼(�╒┼(�╒┼(�╒┼(�╒┼(�╓$($░�$ртЗ|i6╜g ▀╧$≈▒÷Н╘aЗ╗╓зJО║²IРAхVсuЁШkXл╤╩7Ы╖hбЗМнАЫUzУjСмnаtщ^h#UH[B▀Э(GO@7�v�W5 O╤m5fyЬ\d╙O▓}v(яE=bp╙ё%┴Х�НIЦт⌠nхТшQWag╘<3е%╜п┘g▓8╔l ┘,@#$:}К╬ПЖ╗-u╦▓УvJ�яэ▄ЫхьЩs├)╢y8М и┤цv╤Z╚Л▓A{ Ё4⌠д2Bv╙П Пйsи+·>]╛сЮ·`┴{wc~ябa≤"ц<6Ц╦┐▓≤ ╗Хzr+ёN8IS╛ВввОЪ�3Д^#К╡ JъжГ�Б_ YЬ╖N▌фЖk┬ё▌a0kv д─FAЦ÷ЕZЩ+▄сУ█Rер6╧[╚UЙЁ╘2Ц ==ь1<СOтu▀╧╒&}Mmm╓p-ё)+pIBыbxиЫB▒▄Дb╨жk├▓ящЖЁ╧ГK V/TIs"]КВ≈▒1(╗√╫╟ф6rдsЩГ+н9CTН╣⌡+9ЧнР├≤c1 ,юД ░=Я┼мэщB╠.l╜Ta!─МeQю┤N0p╦гL╟╔├ж,q╙($─═иоA^j>ч╢╙уv©EЧg}(Ре$T╪≈S╨╥т]lБмЕ╞░▒╪ьu�> б▒⌠©╕p1в⌠^▒╓ЙvЗ╬÷Е╧8l╚╚ 28А■▌дС┼АЙж┤s%÷┬╜#└А/²ё≥OC╤7pъО ╦о║>ьТП#N|┴oЗb╘^<вьИum╝Е√n▒ч"m;ЧДй2B69⌠├фO║ГНoе°╒чН&╤╧o╨▓tcЛц├Ую9гP+╞╦╧X╠sпVDх╥1х⌠*х▓gz╟х`}GzЛеe■╠^СяВЪ�3┼·&T╢щШ1v,NIОP╩д%F╦⌡и╣┐ВВ▓@URЪ�i╠аЙ ж≈@сeюI ╒М О │ЧЙ0╔qЕН≥#╣╝⌠xAЫНДf▒ЕКР╚╬HNOCСdЖнО:√R╟╣j╡╨];╬┤╖OD▓Б\q┌@о╧�~5И"G$J╙┼═*╞@@=╚ ╫uFз^Г⌡┼фJ■╧"╬См▓нУь(сОA?ч╣░�1Vlm/╜У8%:eс[~L.▄г8ДМ'╘М^┤Er╪uу╧�┼xЙЁ▀▀KЗЫ░ш3зЙю╞r:уwD▐[╢XЭЦo2щл╚▓═ЦpЭ@Эю=╚R┼А└ЕNJQщMщщм√▀е┌;{T с┤┼Нз;█ЫДл╩ы8!≈╦Ю┌м╔▌█s{]ь.⌠╗┘ыm=ёm┴о?uH(╬жSв┌ь$LП╤Ep└Д)█фБSнq▌H#▐@мO·╝`xf@Я╦аS^╣ ж╜)╝gxЖМХл*RSOё%╬╣·+I,╣┘┼[K■0⌡≤╡┼w a■Гfs─rA>└─yw√чжЭ>═Иk|╘Е≤┬]н?s#s)$▌ЮpEw-ЮтlГс╞ю {q╡o1AFыздt9�┐ю┐q▄V4Я>≥╚б╥ДX▓▓г0й@BыЁ┤█S╞C╦УЦИkP╖▌╖мХвfyт╙к 'deеq⌡%╧╦Qn<©1ушЩXфNO╟КYфe/Ж╚≈РыЬE▒─РвШёg╧ДДШ�²FвШ:зОL р$qЁб≤и▓ХrиъЬIШу╣А╚╜сG╩kт┐М▒yЁл]FИcRHeНB╘U>└{┌|▄▓╛Ц-vЫ�а=Ь⌡с▄√╗и├DЦ �ZdВЖ╤ш|Ш┬Цчp╩ь.ЦМ ХuO XAЮи║kD╧╩╣с≥#░╘$х╠Ю=I╘Ум;Hрthыa╤╣┘o-▀3░╙ёоBэ·°Зв╒РЬ╥w#≈К▌ж╠мY⌡╜RВЛV6л%1╪│НCD─)Pz┌�▄c�┐[:÷╗ИжбЪ�иMBБДmsU▓в▒╨ ╤Ю0mд▓�аюеkМb[ъX]i╒_&9!├-я■.LL6°6щ⌡NЙ⌡╠ю5жiQа╛▀nwGЖ≥ь°Г,ebЪ�⌠┘taИR┘эщLkT╘+)skvИ;╛я_О Ч│9ЩBtЗTsk░еe5рZчй░ р)╥h┬^Л<м═ЮsамtВ0 Б }Ах╝_V√;≤dр■▓Ф"▓cЧYFю┌дЧ`Гь:ГVЮГ'd▌UД▓те╤тn╖пR^гЬZa}зeю├Т$,[email protected] X`Ж= ╕t╞@уТо╣з]h║Ш]дgС%$~Л·F@8Ю⌠с╝+┼у╛F≈y-╨мЖ║I $$г▓ъyFv─║NO╞╦╝╙ёYi©o╦УПьШ╬Z╞ГВ∙(╒┼ьУ┌┼(═┼(═┼(═┼(═┼(═e 0G©пЗж╣≈┴5 $eb≈�■7йдШ╤ИгLЗ й╒⌠JJрWF5hS╚Я#╜╤Я┘╩:╔дRG░2шw.O`G?┴�WC яэ@⌠BЙЯх║∙■Д{Ф╪Ъ�LяНУY1М┬4л>UГУ=x▌2 w√6PИЖQZA²▒▄e╠√=I8НNOЦ^^.∙*vЕъ╠АbaNЕ┐╧bЁЧъur iжi,a╟%·_-$╗B╠aО─PH╜ +▌--унVS├kЪ�4 ⌡8UЮ43≈#щ┐*ЯТиФ╝Ts─

PM MAIL   Вверх
PARROT
Дата 25.6.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



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


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mitris
Дата 25.6.2007, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



Цитата(PARROT @ 25.6.2007,  14:10)
А откуда картинка берется? потом уберите перед заголовком собаку, пользуйтесь буферизацией.

из папки.
а путь к картинке лежит в БД.
П.С. если убрать собаку, то оно пишет :
Код

Cannot modify header information - headers already sent 

PM MAIL   Вверх
teroni
Дата 25.6.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 1
Всего: 22



Код

Cannot modify header information - headers already sent 

Ну вот в этом и заключается проблема... Ищите, что скрипт вывел клиенту до отправки
header('Content-type: image/jpeg');

Это сообщение отредактировал(а) teroni - 25.6.2007, 14:50
PM MAIL   Вверх
Kefir
Дата 25.6.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



Цитата(mitris @  25.6.2007,  14:41 Найти цитируемый пост)
Cannot modify header information - headers already sent 

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

я так понимаю, что у вас картинок много (то биш не одна), соответственно ни о каком imagejpeg тут речи быть не может (ибо получается бред - много хедеров, много raw картинок). попробуйте воспольховаться хтмл (<img src="...">) и выводить по человечески.
PM MAIL WWW Skype   Вверх
PARROT
Дата 25.6.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 2
Всего: 50



Вы не пытаетесь сгенерировать превью картинки на лету?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mitris
Дата 25.6.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



Ну...как бы , в работе с картинками на РНР я плохо разбираюсь и мало понял из того, что вы написали...
Мне бы как-то объяснить...
П.С. где-то прочитал, что правильнее будет, при загрузке картинки сразу же создавать картинку - превьюшку , и потом просто ее выводить. Но, я воооообще не представляю как это осуществить...
PM MAIL   Вверх
mitris
Дата 25.6.2007, 22:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



Все, пробема решена.
Вот нашел два примера  

Первый :
Код

<?php
function resizeimg($filename, $w, $h)
{
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // создадим пустое изображение по заданным размерам
    $dest_img = imagecreatetruecolor($w, $h);
    // зальём его белым цветом
    imagefill($dest_img, 0, 0, 0xEEEEEE);
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    // здесь вычисляем размеры, чтобы при масштабировании сохранились
    // 1. Пропорции исходного изображения
    // 2. Исходное изображение полностью помещалось на маленькой копии
    // (не обрезалось)
    if ($src_ratio>$ratio)
    {
        $old_h=$size_img[1];
        $size_img[1]=floor($size_img[0]/$ratio);
        $old_h=floor($old_h*$h/$size_img[1]);
    }
    else
    {
        $old_w=$size_img[0];
        $size_img[0]=floor($size_img[1]*$ratio);
        $old_w=floor($old_w*$w/$size_img[0]);
    }

    // исходя из того какой тип имеет изображение
    // выбираем функцию создания
    switch ($size_img['mime'])
    {
        // если тип файла JPEG
        case 'image/jpeg':
            // создаем jpeg из файла
            $src_img = imagecreatefromjpeg($filename);
            $ext="jpg";
            break;
        // если тип файла GIF
        case 'image/gif':
            // создаем gif из файла
            $src_img = imagecreatefromgif($filename);
            $ext="gif";
            break;
    }

    // масштабируем изображение    функцией imagecopyresampled()
    // $dest_img - уменьшенная копия
    // $src_img - исходной изображение
    // $w - ширина уменьшенной копии
    // $h - высота уменьшенной копии
    // $size_img[0] - ширина исходного изображения
    // $size_img[1] - высота исходного изображения
// третья цифра - 43 - помогает "вписать" картинку в середину прямоугольника

    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);

    // в зависимости от типа файла выбирвем функцию сохранения в файл
    switch ($size_img['mime'])
    {
        case 'image/jpeg':
            // сохраняем в файл small.jpg
            imagejpeg($dest_img, "small.$ext");
            break;
        case 'image/gif':
            // сохраняем в файл small.gif
            imagegif($dest_img, "small.$ext");
            break;
    }

    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
}

    $source="38.jpg";
    list($width,$height) = getimagesize($source);
    $width=$width*0.5;
    $height=$height*0.5;
    // вызываем функцию изменения размера
    resizeimg($source, $width, $height);
    // выводим картинку на экран
    ?>


    <img src="small.jpg"> 



Второй : 
Код


<?PHP

       function img_resize($src, $dest, $width, $height, $rgb = 0xEEEEEE, $quality = 100) {
                             if (!file_exists($src)) return false;
                                 $size = getimagesize($src);
                             if ($size === false) return false;
                                 $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
                                 $icfunc = "imagecreatefrom" . $format;
                             if (!function_exists($icfunc)) return false;
                                  $x_ratio     = $width / $size[0];
                                  $y_ratio     = $height / $size[1];
                                  $ratio       = min($x_ratio, $y_ratio);
                                  $use_x_ratio = ($x_ratio == $ratio);
                                  $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
                                  $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);
                                  $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2);
                                  $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
                                  $isrc        = $icfunc($src);
                                  $idest       = imagecreatetruecolor($width, $height);
                                  
                                  imagefill          ($idest, 0, 0, $rgb                         );
                                  imagecopyresampled ($idest, $isrc, $new_left, $new_top, 0, 0,
                                                      $new_width, $new_height, $size[0], $size[1]);
                                  imagejpeg          ($idest, $dest, $quality                    );
                                  imagedestroy       ($isrc                                      );
                                  imagedestroy ($idest                                           );
                                                return true;

                   }
  $source="38.jpg";
    list($width,$height) = getimagesize($source);
    $width=$width*0.5;
    $height=$height*0.5;

                   img_resize($source, 'sempl.jpg', $width, $height);

?>




как первый так и торой работают превосходно
PM MAIL   Вверх
Severyanin
Дата 1.8.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



прошу прощения за ламерский вопрос, но дали мне задание на PHP,а до этого я под однокристаллки писал.
Не могу вывести в броузер сгенерированную "на лету" картинку.
       
       $string="Hello world!"; 
       $im = imagecreate(300,40); 
       $black  = imagecolorallocate($im, 0, 0,0);
       $orange = imagecolorallocate($im, 220,210,60); 
       imagefill($im,0,0,$black); 
       imagettftext($im,50,0,20,35,$orange,getcwd()."./times.ttf",$string);
       Header("Content-type: image/png"); 
       imagepng($im);
Вместо рисунка выводит непонятный набор символов







--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Nazaret2005
Дата 1.8.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Код

$string="Hello world!"; 
$cachefile = ("images/results.png"); //в папке images под назаванием results.png
$im = imagecreate(300,40); 
$black  = imagecolorallocate($im, 0, 0,0);
$orange = imagecolorallocate($im, 220,210,60); 
imagefill($im,0,0,$black); 
imagettftext($im,50,0,20,35,$orange,getcwd()."./times.ttf",$string);
Header("Content-type: image/png"); 
imagepng($im,$cachefile,100); //сохраняет картинку 
imagedestroy($im);

PM MAIL   Вверх
teroni
Дата 2.8.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 1
Всего: 22



Severyanin, нормально работает Ваш скрипт. Убедитесь, что getcwd()."./times.ttf" существует, а еще проще, замените это на просто "times.ttf" и киньте файл шрифта в папку к скрипту.
PM MAIL   Вверх
Severyanin
Дата 2.8.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



Спасибо за ответ, teroni smile . С этоф проблемой я уже справился, а злободневную вывел в отдельную тему.


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Temp
Дата 2.10.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 577
Регистрация: 12.1.2003

Репутация: нет
Всего: -3



Код

<?php
function resizeimg($filename, $w, $h)
{
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // создадим пустое изображение по заданным размерам
    $dest_img = imagecreatetruecolor($w, $h);
    // зальём его белым цветом
    imagefill($dest_img, 0, 0, 0xEEEEEE);
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    // здесь вычисляем размеры, чтобы при масштабировании сохранились
    // 1. Пропорции исходного изображения
    // 2. Исходное изображение полностью помещалось на маленькой копии
    // (не обрезалось)
    if ($src_ratio>$ratio)
    {
        $old_h=$size_img[1];
        $size_img[1]=floor($size_img[0]/$ratio);
        $old_h=floor($old_h*$h/$size_img[1]);
    }
    else
    {
        $old_w=$size_img[0];
        $size_img[0]=floor($size_img[1]*$ratio);
        $old_w=floor($old_w*$w/$size_img[0]);
    }

    // исходя из того какой тип имеет изображение
    // выбираем функцию создания
    switch ($size_img['mime'])
    {
        // если тип файла JPEG
        case 'image/jpeg':
            // создаем jpeg из файла
            $src_img = imagecreatefromjpeg($filename);
            $ext="jpg";
            break;
        // если тип файла GIF
        case 'image/gif':
            // создаем gif из файла
            $src_img = imagecreatefromgif($filename);
            $ext="gif";
            break;
    }

    // масштабируем изображение    функцией imagecopyresampled()
    // $dest_img - уменьшенная копия
    // $src_img - исходной изображение
    // $w - ширина уменьшенной копии
    // $h - высота уменьшенной копии
    // $size_img[0] - ширина исходного изображения
    // $size_img[1] - высота исходного изображения
// третья цифра - 43 - помогает "вписать" картинку в середину прямоугольника

    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);

    // в зависимости от типа файла выбирвем функцию сохранения в файл
    switch ($size_img['mime'])
    {
        case 'image/jpeg':
            // сохраняем в файл small.jpg
            imagejpeg($dest_img, "small.$ext");
            break;
        case 'image/gif':
            // сохраняем в файл small.gif
            imagegif($dest_img, "small.$ext");
            break;
    }

    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
}

    $source="38.jpg";
    list($width,$height) = getimagesize($source);
    $width=$width*0.5;
    $height=$height*0.5;
    // вызываем функцию изменения размера
    resizeimg($source, $width, $height);
    // выводим картинку на экран
    ?>


    <img src="small.jpg"> 


Можно его мадернизировать, чтобы вставить в цикл, и обрабатывать несколько изображений на одной странице.
Вариант с созданием нескольких файлов тоже не подойдёт, это значительно заполнит хостинговое пространство.
Необходио преобразовавать картинки "на лету".

зарание, спасибо большое


--------------------
<удалено администрацией>
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0928 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.