PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Images auch in Datei Größe Skaliren



Roberto
07-06-2007, 09:05
Hallo
Wie der Titel auch schon verrät will ich ein Bild auch in der Datei Größe Skalieren. Kann mir da einer weiterhelfen?
Bis her mache ich halt nur <img src="./da/wo/es/is/bildname.jpeg" width="550" />
Dann wird das Bild mit einer Breite von 550 angezeigt aber es wird noch immer die ganze Dateien grüße geladen das bei manchen Bilder ja schon mal eine weile dauern kann.

Vielen dank für die Hilfe schonmal

Gruß Roberto

elrond
07-06-2007, 13:26
es reicht nicht aus, das bild klein darzustellen... Idealerweise liegt das pic in der anzeigegröße vor oder wird zur laufzeit erzeugt. :cool:

msi
09-06-2007, 11:08
mit dem befehl convert kannst du die bilder verkleinern.
man convert verrät dir die genaue syntax.

rgubatz
10-06-2007, 21:39
<?php

function imagecreatefromfile($filename)
{
static $image_creators;

if (!isset($image_creators)) {
$image_creators = array(
1 => "imagecreatefromgif",
2 => "imagecreatefromjpeg",
3 => "imagecreatefrompng",
16 => "imagecreatefromxbm"
);
}

$image_size = getimagesize($filename);
if (is_array($image_size)) {
$file_type = $image_size[2];
if (isset($image_creators[$file_type])) {
$image_creator = $image_creators[$file_type];
if (function_exists($image_creator)) {
return $image_creator($filename);
}
}
}

// "imagecreatefrom...() returns an empty string on failure"
return "";
}

function resizeimage($src)
{

define('W',650);
define('H',400);

$jpg = 1;
$dst_w = 0;
$dst_h = 0;

if(file_exists($src)) {

$is = getimagesize($src);

if(!is_array($is)) {
return false;
}

/* ist Datei jpg ? */
if($is[2]!=2) {
$jpg = 0;
}

/* neue Koordinaten berechnen */
if($is[0] > W) {
$dst_w = W;
$dst_h = intval(($is[1]/$is[0])*$dst_w);
} else if($is[1] > H) {
$dst_h = H;
$dst_w = intval(($is[0]/$is[1])*$dst_h);
} else {
$dst_h = $is[1];
$dst_w = $is[0];
}

/* neue Datei erstellen */
$img_src=imagecreatefromfile($src);
$img_dst=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $dst_w, $dst_h, $is[0], $is[1]);

if(!$jpg) {
$src = $src . ".jpg";
}

imagejpeg($img_dst, $src, 100);

imagedestroy($img_dst);

return true;

} else return false;
}

?>

Roberto
21-07-2007, 13:15
<?php

function imagecreatefromfile($filename)
{
static $image_creators;

if (!isset($image_creators)) {
$image_creators = array(
1 => "imagecreatefromgif",
2 => "imagecreatefromjpeg",
3 => "imagecreatefrompng",
16 => "imagecreatefromxbm"
);
}

$image_size = getimagesize($filename);
if (is_array($image_size)) {
$file_type = $image_size[2];
if (isset($image_creators[$file_type])) {
$image_creator = $image_creators[$file_type];
if (function_exists($image_creator)) {
return $image_creator($filename);
}
}
}

// "imagecreatefrom...() returns an empty string on failure"
return "";
}

function resizeimage($src)
{

define('W',650);
define('H',400);

$jpg = 1;
$dst_w = 0;
$dst_h = 0;

if(file_exists($src)) {

$is = getimagesize($src);

if(!is_array($is)) {
return false;
}

/* ist Datei jpg ? */
if($is[2]!=2) {
$jpg = 0;
}

/* neue Koordinaten berechnen */
if($is[0] > W) {
$dst_w = W;
$dst_h = intval(($is[1]/$is[0])*$dst_w);
} else if($is[1] > H) {
$dst_h = H;
$dst_w = intval(($is[0]/$is[1])*$dst_h);
} else {
$dst_h = $is[1];
$dst_w = $is[0];
}

/* neue Datei erstellen */
$img_src=imagecreatefromfile($src);
$img_dst=imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $dst_w, $dst_h, $is[0], $is[1]);

if(!$jpg) {
$src = $src . ".jpg";
}

imagejpeg($img_dst, $src, 100);

imagedestroy($img_dst);

return true;

} else return false;
}

?>

wenn ich imagecreatefromfile("./bildname.jpg"); mache komm nix bei mir.?
Mache ich was falsch?

msi
25-07-2007, 18:26
mach das bild doch kleiner,
benutz dazu gimp oder eben convert in der kommandozeile.

Roberto
17-06-2008, 20:59
Hallo
Hab den Code jetzt
aber wie bekomme ich das in mein php Skript hinein?

#imge skaliren


foreach ($_GET as $key => $value) $$key = $value;

Thumbnail($datei,$x,$y);

function Thumbnail($filename,$x = 100,$y = 0)
{
$size = @GetImageSize("$filename");
if ($size[1] > 0) $ratio = $size[0] / $size[1];
else $ratio = 1;
if ($y == 0) $y = $x / $ratio;
$img = @ImageCreateFromJPEG ("$filename");
if ($img)
{
$img2 = ImageCreateTruecolor ($x, $y);
ImageCopyResampled ($img2, $img, 0, 0, 0, 0, $x, $y, $size[0], $size[1]);
header("Content-type: image/jpg");
ImageJPEG($img2,"",80);
}
}


#mein php skrypt



<?php

$teiler = 14;

if(!empty($_GET['k']) and !empty($_GET['id']) and $_GET['img'] > -1)
{
include './bilder/'.$_GET['k'].'/'.$_GET['id'].'.php';
$phat='
<font style="font-size:11px;"><a href="./?src=src_bilder" style="font-size:11px;"><b>Bilder auswahl</b></a><br />
&nbsp;&nbsp;'.$_GET['k'].'&nbsp;&nbsp;<a href="./?src=bilder&k='.$_GET['k'].'&id='.$_GET['id'].'" style="font-size:11px;"><b>'.$titel_bilder.'</b></a></font>';
}
else
{
$phat='
<font style="font-size:11px;"><a href="./?src=src_bilder" style="font-size:11px;"><b>Bilder auswahl</b></a><br />
&nbsp;&nbsp;'.$_GET['k'].'&nbsp;&nbsp;<a href="./?src=bilder&k='.$_GET['k'].'&id='.$_GET['id'].'" style="font-size:11px;"><b>'.$titel_bilder.'</b></a></font>';
}

$var_eval_index = templates('./templates/bilder_header.html');
eval("\$var_eval_index = \"$var_eval_index\";");

$var_eval_index = $var_eval_index.templates_file('./templates/auf.html');
$var_eval_index = templates_nigiren($var_eval_index);
eval("\$var_eval_index = \"$var_eval_index\";");


$dh = opendir("./images/src_images/$k/$id");
while($filename = readdir($dh))
{
if($filename != '.' and $filename != '..')
$bilder[] = $filename;
}


$seite = ceil(count($bilder)/$teiler);

$t=0;
$b=-1;
while($seite)
{
$b++;
$t++;

if($_GET['page'] == $b) $page_switch = $page_switch." <b style=\"color:#FFA000;\">[ $t ]</b>";
else $page_switch = $page_switch." <a href=\"./?src=bilder&k=".$_GET['k']."&page=$b&id=".$_GET['id']."\">$t</a> ";

$seite = $seite-1;
if($seite == 0) break;
}


$img_table = $page_switch.'<table width="100%" border="0" cellpadding="2" cellspacing="2">';

$anfang = $teiler*$_GET['page'];

$b=1;
for($i=$anfang; $i<=$teiler+$anfang; $i++)
{
if($b==1)
{
$img_table = $img_table.'<tr align="center"><td>
<a href="./?src=bilder_one&k='.$_GET['k'].'&page=1&id='.$_GET['id'].'&img='.$bilder[$i].'">

<img src="./images/src_images/$k/$id/'.$bilder[$i].'" width="230" border="0" />

</a></td>';
}
elseif($b==2)
{
$img_table = $img_table.'<td><a href="./?src=bilder_one&k='.$_GET['k'].'&page=1&id='.$_GET['id'].'&img='.$bilder[$i].'"><img src="./images/src_images/$k/$id/'.$bilder[$i].'" width="230" border="0" /></a></td>';
}
elseif($b==3)
{
$img_table = $img_table.'<td><a href="./?src=bilder_one&k='.$_GET['k'].'&page=1&id='.$_GET['id'].'&img='.$bilder[$i].'"><img src="./images/src_images/$k/$id/'.$bilder[$i].'" width="230" border="0" /></a></td></tr>';
$b=0;
}
$b++;
}

$img_table = $img_table.'</table>';

$var_eval_index = $var_eval_index.templates_file('./templates/bilder_show.html');
$var_eval_index = templates_nigiren($var_eval_index);
eval("\$var_eval_index = \"$var_eval_index\";");

$var_eval_index = $var_eval_index.templates_file('./templates/zu.html');
$var_eval_index = templates_nigiren($var_eval_index);
eval("\$var_eval_index = \"$var_eval_index\";");

?>

msi
19-06-2008, 22:34
mach das bild doch kleiner,
benutz dazu gimp oder eben convert in der kommandozeile.

das ist die saubere variante. damit verschwendest du auch keine rechenzeit