kostenloser Webspace werbefrei: lima-city


ein jpg über ein php "erschaffen"

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    hallo! :wave:

    also, wie der titel sagt möchte ich ein jpg aus einem php-dukument heraus erschaffen. damit meine ich, daß ich eine php wie ein jpg lade und die php dann auf die jeweilige jpg zugreift und dann zurückgibt.
    grund ist, daß das bild in einem geschützen bereich der hp liegt wo die endanwendung jedoch keinen zugriff drauf hat.
    texte laden und zurückgeben, daß bekomme ich inzwischen halbwegs hin. aber bilder ... die kann ich mit imagejpeg "herstellen", aber ich will die dann nicht irgendwo speichern, sondern halt "bereitstellen"

    hm, also ich weiß nun nicht genau wonach ich googlen muß und so. vielleicht kennt da jemand eine gute seite dafür oder so.

    als alternative würde auch gehen, daß ich mit dem php ein jpg aufrufe und dann das php von dem jpg in einem string von jedem pixel den x-wert, den y-wert und den farbwert in einen string speichert und den string per echo wieder zurückgibt. geht das? wie? stichpunkte genügen :biggrin: (rein theoretisch reicht ja zu beginn eine angabe über die breite des bildes, aber sicher ist sicher :king:)



    edit
    nach reifendem gedankengang bin ich sogar fast der meinung, daß die oben genannte alternative für mich praktischer wäre :smile:

    Beitrag zuletzt geändert: 17.8.2009 17:59:07 von sonok
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das ist vieleicht eine blöde Idee weil es mitunter viel Trafic auf dem Server verursacht aber:

    Warum kopierst du nicht das Bild aus deinem unzugänglichen Verzeichnis in ein temporäres Verzeichnis welches für den Nutzer zugänglich ist mit nem temporären Dateinamen und wenn die Seite wieder verlassen wird löschst du es wieder, einbinden kannst es dann ja dann wie gewohnt.

    so ne Art ein und auschecken...

    Beitrag zuletzt geändert: 17.8.2009 18:07:04 von fatfox
  4. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    fatfox schrieb:
    Das ist vieleicht eine blöde Idee weil es mitunter viel Trafic auf dem Server verursacht aber:

    Warum kopierst du nicht das Bild aus deinem unzugänglichen Verzeichnis in ein temporäres Verzeichnis welches für den Nutzer zugänglich ist mit nem temporären Dateinamen und wenn die Seite wieder verlassen wird löschst du es wieder, einbinden kannst es dann ja dann wie gewohnt.

    so ne Art ein und auschecken...


    daran habe ich auch schon gedacht - das wäre die einfachste methode, aber da der nutzer am ende auch bilder hochladen kann, die er nicht der öffentlichkeit preisgeben wil, würden diese bilder während er sie in irgendeiner art und weise verwendet bzw anzeigt in einem bereich der hp liegen, die auch von anderen zugänglich wäre - in dem zeitraum wären sie also nicht geschützt, glaub ich :smile:
    zudem soll das herunterladen der bilder ein wenig beschränkt sein, also nicht so ohne weiteres gehen (abgesehen vom bildschirmfoto)
  5. Na ja dadurch das du auch dynamisch erzeugte Unterverzeichnisse verwenden kannst, weiß eigentlich niemand außer deinem Skript die Daten zum Nutzer zuzuordnen und wenn du ein zufälliges Namenschema verwendest dann kann man die resultierenden Namen auch nicht erraten, sobald sich die Daten nacher im geschützten Bereich befinden kannst du ja wieder Klartextnamen verwenden.

    Dumm gefragt wie schützt du denn dein Verzeichniss ? .htaccess ?

    Wenn ja dann schreib doch den User als Valid User in die .htaccess Datei und erzeuge Ihm ein Passwort, dann darf er während seiner Sitzung zugreifen, wenn er sich ausloggt löschst du ihn wieder, deaktivierst Ihn...what ever.
  6. Bild mit imagecreatefromjpeg() einlesen und direkt mit imagejpeg() wieder ausgeben?
  7. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    tct schrieb:
    Bild mit imagecreatefromjpeg() einlesen und direkt mit imagejpeg() wieder ausgeben?

    Dabei aber nicht vergessen, den Contet-type mit
    header('Content-type: image/jpeg');
    richtig zu setzten.
  8. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    an fatfox

    ich nehm flash und soweit ich weiß kann man mit flash nicht auf htaccess-geschützte bereiche zugreifen (die swf findet das bild nicht) - das ist ja der grund warum ich über php gehe :frown:
    hm, also wenn ich es nicht schaffe mit den bildern dann wird die ordner-kopier-geschichte eh nötig sein :frown:


    an tct

    ja, als befehl hab ich dann am ende ein imagejpeg($new_image, $pfad.$_FILES["Filedata"]["name"], 100);, oder? dann kann ich es irgendwo speichern
    wenn ich nur imagejpeg($new_image); nehme, dann wird das bild einfach ausgegeben und die php ist wie ein normales jgp?


    an kochmarkus

    wo kommt der header denn hin? hab den noch nie genommen, so?
    <? php
    header('Content-type: image/jpeg');
    $pfad = $_POST['ssid'];
    usw usf


    Beitrag zuletzt geändert: 17.8.2009 18:53:05 von sonok
  9. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    sonok schrieb:
    an kochmarkus

    wo kommt der header denn hin? hab den noch nie genommen, so?
    <? php
    header('Content-type: image/jpeg');
    $pfad = $_POST['ssid'];
    usw usf



    Ja, zum Beispiel so. Wichtig ist, dass du den Content-type setzt _bevor_ dein Skript irgendwas ausgibt.

    €dit: Ein Minimalbeispiel (ungetestet):
    <?php
      header('Content-type: image/jpeg');
    
      $image = imagecreatefromjpeg("../pics/bild.jpg");
      imagejpeg($image);
    ?>


    €dit: So jetzt stimmen auch die Variablennamen. Danke sonok


    Beitrag zuletzt geändert: 18.8.2009 1:16:37 von kochmarkus
  10. ich wollte mal eine eine Stram-Funktion machen was jedoch daran gescheitert ist das der Mediaplayer nihct mit dem php-File umgehen konnte... aber Downloaden konnte ich die MP3-files schon. Da habe ich auch einfach das File eingelesen und dann ausgegeben, das würde immer noch weniger Traffig ergeben als die Datei in ein Temp-Verzeichniss zu kopieren. (habe es schon ausprobiert)
  11. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    kochmarkus schrieb:
    €dit: Ein Minimalbeispiel (ungetestet):
    <?php
      header('Content-type: image/jpeg');
    
      $image = imagecreatefromjpeg("../pics/bild.jpg");
      imagejpeg($thumb);
    ?>



    hehe, ich hab's getestet :smile: -> aber ich hab $thumb mit $image ersetzt, weil $thumb zu nehmen erschien mir nicht logisch :shy:

    [edit - im browser geht das] aber in flash kommt statt des bildes nur ÿØÿà an, das dürfte nicht das wahre sein.

    naja, und wie gesagt, ein jpg in seine einzelpixel-werte aufteilen, kennt denn jemand da einen weg? da ist bisher noch niemand drauf eingegengen :smile:

    Beitrag zuletzt geändert: 18.8.2009 1:06:09 von sonok
  12. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    sonok schrieb:

    hehe, ich hab's getestet :smile: -> aber ich hab $thumb mit $image ersetzt, weil $thumb zu nehmen erschien mir nicht logisch :shy:

    [edit - im browser geht das] aber in flash kommt statt des bildes nur ÿØÿà an, das dürfte nicht das wahre sein.


    Gut erkannt. Es muss natürlich beide mal $image heißen. Das kommt davon wenn man aus einem eigenen Thumbnail-Skript rauskopiert und es nicht hinbekommt beide Variablennamen zu ersetzten.

    Bei deinem Flash Problem kann ich dir leider nicht weiterhelfen, da ich davon keine Ahnung hab.

    €dit: Gefühlsmäßig würd ich aber sagen, dass bei Flash zwar dir richtigen Daten (also das Bild) ankommt, Flash aber den Content-type ignoriert und somit nicht weiß, dass es sich um eine jpeg Datei handelt und versucht es als Text darzustellen.

    €dit2: Jupp, wenn ich eine JPEG Datei mit nem Texteditor öffne, dann sind die ersten Zeichen ÿØÿà.

    Beitrag zuletzt geändert: 18.8.2009 1:21:47 von kochmarkus
  13. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    ich hab jetzt den mini-code nach

    header('Content-type: image/jpeg');
    $pfad = "DSC00435.JPG"

    $image = imagecreatefromjpeg($pfad);
    imagejpeg($image);

    geändert, aber schon hackt es mit

    Parse error: syntax error, unexpected T_VARIABLE in /home/webpages/lima-city/sonok/html/sonok_12/bild_anzeigen.php on line 6

    als es ging hatte ich den string so wie er ist in die klammern gepackt :frown:
    edit - zeile sechs ist die $image = - zeile

    Beitrag zuletzt geändert: 18.8.2009 1:24:39 von sonok
  14. k**********k


    $pfad = "DSC00435.JPG"


    Semikolon vergessen ;-)

    =>

    $pfad = "DSC00435.JPG";
  15. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    ketchupfleck schrieb:

    $pfad = "DSC00435.JPG"


    Semikolon vergessen ;-)

    =>

    $pfad = "DSC00435.JPG";



    :mad: hm, wenn ich weiter so einen stuß mach :mad:

    ach ja, meine alternative -
    in php heißt das stichwort zum pixelmachen imagesetpixel - und wie bei flash wird es ein gegenstück dazu geben, oder? :smile:

    edit
    nein, aus und fertig! es klappt! ich kann ohne probleme den bildertitel von flash mit an php übergeben und dann kommt das bild das ich mag! Yupiiieee!!

    danke an alle!

    Beitrag zuletzt geändert: 18.8.2009 1:37:29 von sonok
  16. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Noch einfacher wäre es die BIldatei einfach mittels readfile auszugeben, dann würde das ganze ohne Schutz so aussehen:

    <?php
    header('Content-type: image/jpeg');
    $pfad = "DSC00435.JPG";
    readfile($pfad);
    ?>
  17. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    :biggrin: ich bin froh wenn es läuft, aber danke!

    hm, was meinst du eigentlich mit schutz? wovor soll ich schützen tun?
  18. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    sonok schrieb: :biggrin: ich bin froh wenn es läuft, aber danke!

    hm, was meinst du eigentlich mit schutz? wovor soll ich schützen tun?


    Wäre halt der direkte Weg, wo es nur ausgelesen und versendet wird. So mach ich das immer

    Hab ich vorhin irgendwo weiteroben irgendwo aufgeschnappt, wo es darum ging den zugriff auf die Bilder einzuschränken
  19. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    thomasba schrieb:
    Noch einfacher wäre es die BIldatei einfach mittels readfile auszugeben, dann würde das ganze ohne Schutz so aussehen:

    <?php
    header('Content-type: image/jpeg');
    $pfad = "DSC00435.JPG";
    readfile($pfad);
    ?>



    Stimmt eigentlich, solange man am Bild nichts verändern will. Dürfte wohl auch schneller und weniger speicherintensiv sein.

    Allerdings wird das wohl nicht am Flash Problem ändern. Da Flash wahrscheinlich einen Dateinamen bild.php sieht und wegen der Endung eher mit Text als mit einem Foto rechnet. Man müsste Flash also irgendwie mitteilen können, dass bild.php eine JPEG-Datei liefert.

    Beitrag zuletzt geändert: 18.8.2009 2:05:19 von kochmarkus
  20. preview.php:
    
    <?php
        header('Content-type: image/jpeg');
        $pfad = "../baustellenschild.jpg";
        $image = imagecreatefromjpeg($pfad);
        imagejpeg($image);
    ?>

    Mit dem Code kann ich das Bild (welches im übergeordneten Verzeichnis liegt) in mein Sprite der .swf laden... Die .swf und .php liegen im selben Verzeichnis...

    onLoad () {
        Sprite.loadMovie("preview.php");
    }
  21. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    ich hab's ja schon eingebastelt und weiter oben geschrieben das ich's hab :frown: also es läuft, ich hab nur nicht genau gewußt was da mit der sicherheit nicht gehen sollte, aber es geht nun alles so wie es soll!

    naja, also wenn jetzt noch eine antwort wg dem gepixel kommt wäre das praktisch, aber der rest ist wie gesagt lauffähig und erweitert und läuft :wave:
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!