Avatar billede den-evil Nybegynder
12. december 2005 - 10:35 Der er 6 kommentarer og
1 løsning

resize bredde og højde

Hey alle...
Har en billede upload funktion som virker helt fint, den smider billedet i databasen!

Når jeg trækker billedet ud, så vil jeg gerne have det til at have en max bredde og en max højde...

Det der henter viser billedet ser sådanne ud:
<?
include("includes/config.inc.php");
$sql    = "SELECT * FROM image WHERE image_id=".$_GET["iid"];
$result = mysql_query ($sql);
if (mysql_num_rows ($result)>0) {
  $row = @mysql_fetch_array ($result);
  $image_type = $row["image_type"];
  $image = $row["image"];
  Header ("Content-type: $image_type");
  print $image;
}
?>
Avatar billede jakobdo Ekspert
12. december 2005 - 10:39 #1
Overvej at smid billederne igennem denne inden du gemmer det:
function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}
Avatar billede den-evil Nybegynder
12. december 2005 - 10:43 #2
Hvordan vil du implementere det i den her :

<?php
include("../includes/config.inc.php");
$idaktuelt = $_REQUEST['idaktuelt'];
// Do this process if user has browse the file and click the submit button
if ($_FILES) {
  $image_types = Array ("image/bmp",
                        "image/jpeg",
                        "image/jpg",
                        "image/pjpeg",
                        "image/gif",
                        "image/x-png");

  $userfile  = addslashes (fread (fopen ($_FILES["userfile"]["tmp_name"], "r"), filesize ($_FILES["userfile"]["tmp_name"])));
  $file_name = $_FILES["userfile"]["name"];
  $file_size = $_FILES["userfile"]["size"];
  $file_type = $_FILES["userfile"]["type"];

  if (in_array (strtolower ($file_type), $image_types)) {
    $sql = "INSERT INTO image (image_type, image, image_size, image_name, idaktuelt) ";
    $sql.= "VALUES (";
    $sql.= "'{$file_type}', '{$userfile}', '{$file_size}', '{$file_name}','$idaktuelt')";
    @mysql_query ($sql);
    echo '<script>alert("Tilføjet");</script>';
    ?>
    <script>document.location.href="imagedit-aktuelt-show.php?idaktuelt=<?=$idaktuelt?>"</script>
    <?
    exit();
  }
}
?>
Avatar billede jakobdo Ekspert
12. december 2005 - 10:55 #3
Du skal gøre det inden:
resize($_FILES["userfile"]["tmp_name"],"tmpFile.extension",800,800);
$userfile  = addslashes (fread (fopen ("tmpFile.extension", "r"), filesize ($_FILES["userfile"]["tmp_name"])));
Avatar billede den-evil Nybegynder
12. december 2005 - 11:02 #4
Får denne  fejl:

Warning: fopen(tmpFile.extension) [function.fopen]: failed to open stream: No such file or directory in c:\websteder\admin\imagedit-aktuelt-ok.php on line 32

Warning: fread(): supplied argument is not a valid stream resource in c:\websteder\admin\imagedit-aktuelt-ok.php on line 32
Avatar billede den-evil Nybegynder
12. december 2005 - 11:31 #5
min fejl, havde glemt at køre den igennem funktionen :)

Det virker kanon, lægger du et svar?
Avatar billede jakobdo Ekspert
12. december 2005 - 11:38 #6
Svar!
Avatar billede jakobdo Ekspert
12. december 2005 - 12:23 #7
Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester