Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z poprawnym tworzeniem obrazka png
Forum PHP.pl > Forum > PHP
tiamak
witam mam sobie taki kod
[php:1:5f88b6a479]<?php
Header("Content-type: image/png");
session_start();
$db = mysql_connect($_SESSION["USER_HOST"], $_SESSION["USER_DB_LOG"], $_SESSION["USER_DB_PASS"]) or die (mysql_error());
mysql_select_db($_SESSION["USER_DB_NAME"],$db) or die (mysql_error());

$img_des = ImageCreate(200,250);
$bialy = imagecolorallocate($img_des, 255, 255, 255);
//imagefill($img_des, 0, 0, $bialy);
imagecolortransparent($img_des, $bialy);

$sql = 'SELECT id_kat, nazwa_kat FROM czesci_kat';
$result = mysql_query($sql,$db) or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
if ($_POST['kat_'.$row[0]] == 1)
{
$sql_cz = 'SELECT id_cz FROM czesci WHERE id_kat = "'.$row[0].'"';
$result_cz = mysql_query($sql_cz,$db) or die (mysql_error());
while ($row_cz = mysql_fetch_array($result_cz)) {
$sciezka = '....gdziestam...';
$wartosci = $_POST['a'.$row_cz[0]];
if (strlen($wartosci)) {
$img_src = ImageCreateFrompng($sciezka);
$true_width = imagesx($img_src);
$true_height = imagesy($img_src);
list($szer, $wys) = explode('||',$wartosci);
imagecopy ($img_des, $img_src, $szer, $wys, 0, 0, $true_width, $true_height);


} // if strlen(Wartosci)
} // while row_cz
} // if kat


} // while
mysql_close($db);
imagepng($img_des);
imagedestroy($img_des);

?>[/php:1:5f88b6a479]

i kod dziala tworzy obrazek wyswietla na stronie
ale jak chce zapisac to sugeruje mi format bmp
ponadtwo nawet jak go zapisze mimo wszystko jako png
to dziala ok jak go potem wrzuce na strone ale w windowsie
wciaz jest rozpoznawany blednie jako bmp
ponadto jak chce go zauploadowac to
to skrypt tez mi jego tym mime pokazuje jako bmp
i juz jestem glupi i nie wiem co jest zle
dla porownania
mam podobny skrypcik
(starsza ubozsza wersja tego snitch.gif )
wszystkie funkcje odnosnie tworzenia obrazka uzyte tak samo
i ten drugi skrypcik dziala ok i ma typ png
a tamten ktory jest tylko udoskonalona wersja nie sad.gif
niech mi ktos pomoze sad.gif
ponizej kod tego drugiego co dziala jeszcze doklejam tak dla porownania

[php:1:5f88b6a479]<?php
Header("Content-type: image/png");
$img_des = ImageCreate(500,500);
$bialy = imagecolorallocate($img_des, 255, 255, 255);
//imagefill($img_des, 0, 0, $bialy);
imagecolortransparent($img_des, $bialy);
$img_src = ImageCreateFrompng("1.png");
$img_src2 = ImageCreateFrompng("2.png");



list($szer_a, $wys_a) = explode('||',$_POST['a']);
list($szer_b, $wys_b) = explode('||',$_POST['b']);

imagecopy ($img_des, $img_src, $szer_a, $wys_a, 0, 0, 32, 38);
imagecopy ($img_des, $img_src2, $szer_b, $wys_b, 0, 0, 38, 44);
imagepng($img_des);
imagedestroy($img_des);

?>[/php:1:5f88b6a479]

z gory dzieki za wszelka pomoc
tiamak
nie no problem jest na pewno w tym ze ten headerek sie mi nie przesyla
pytanie tylko czemu sie nie przesyla
jest ladnie na samej o gorze
nic przed nim nie ma
bledu nie wyswietla
sad.gif
eh
jakis pomysl questionmark.gif?
tiamak
chociaz nie wiem czemu nie dziala to co pisalem
to juz zrobilem sobie troche inne rozwiazanie i dziala ok
mimo wszystko dzieki za zainteresowanie (widzialem ze pare osob znalazlo adres strony z tym skryptem i probowalo posprawdzac "w terenie")
spenalzo
a) daj session_start przed Header
cool.gif usun "or die (mysql_error()) "
c) w ostateczności daj error_reporting(0);

Obstawiam a lub b smile.gif
tiamak
ani jedno ani drugie smile.gif
probowalem tez bes sesji bo nie jest mi konieczna
i tez nic
ale mi to i tak jest potrzebne do zapisywania obrazkow
wiec dalem sobie
[php:1:4cf2c04b79]<?php
header("Content-Disposition: attachment; filename=zapiszmnie.png");
?>[/php:1:4cf2c04b79]
i od razu sie zapisuja i wtedy juz header jest poprawnie czytany
bynajmniej w ie6
anyway
dzieki za wskazowki tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.