Ergebnis 1 bis 7 von 7

Thema: Bildverkleinerungsproblem (Mehrfache Funktionsprüfung)

  1. #1
    Youngster
    Registriert seit
    02.03.2007
    Beiträge
    12
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Bildverkleinerungsproblem (Mehrfache Funktionsprüfung)

    Hallo.

    Ich habe leider mal wieder ein kleines Problem beim Thumbnail erzeugen mit der PHPJK Galerie (diesmal in der Thumbnailview.php). Und zwar wollte ich das die Bilder hier nach ihrer Höhe, bzw. ihrer Breite verkleinert werden. Ich hatte das ganze so geplant das wenn das Bild höher als breit ist es auf 100 Pixel Höhe verkleinert wird und wenn es breiter als hoch ist auf 100 pixel Breite. Soweit klappt mein dort eingebauter Code auch, bloß leider stimmt mit der Prüfung irgendetwas nicht. Die Funktion orientiert sich bei der Galerie immer nur nach dem ersten Bild auf der Seite und passt die Vergrößerung dann an alle anderen an, d.h. ist Bild 1 höher als breit wird es auf 100 pixel höhe verkleinert und alle anderen Bilder (Bild 2,3,4...) in dieser ,,Galerie" auch, auch wenn diese genau andersherum verkleinert werden müssten.

    Die Bildverkleinerung ist in eine Funktion eingelagert, die ,,DispThumb" Funktion, in der ,,ein" Bild verkleinert wird und der folgende Code sorgt dann dafür das alles angezeigt wird:

    Code:
    // display the thumbnails
    		If ( $bAccessLocked )
    		{
    			If ( ! $bDispAllImages ) {
    				$sQuery = "SELECT * FROM Images I (NOLOCK), ImagesInGallery IG (NOLOCK) WHERE IG.GalleryUnq = " . (INT)$iGalleryUnq . " AND I.ImageUnq = IG.ImageUnq ORDER BY " . $sSortString;
    			}Else{
    				// read from the IGAllIViewResults table for the current "search" - join it with the Images table to get all the fields required below
    				$sQuery = "SELECT R.AccountUnq, R.GalleryUnq, I.ImageUnq, I.AltTag, I.Image, I.Thumbnail, I.ImageSize, I.FileType, I.Title, IG.AddDate, IG.Position FROM Images I (NOLOCK), IGAllIViewResults R (NOLOCK), ImagesInGallery IG (NOLOCK) WHERE IG.ImageUnq = I.ImageUnq AND R.SearchID = " . $iSearchID . " AND I.ImageUnq = R.ImageUnq ORDER BY " . $sSortString;
    			}
    			DB_Query("SET ROWCOUNT " . ($iDBLoc + $iNumPerPage));
    			$rsRecordSet = DB_Query($sQuery);
    			DB_Query("SET ROWCOUNT 0");
    			For &#40; $x = 1; $x <= $iDBLoc; $x++&#41;
    				DB_Fetch&#40;$rsRecordSet&#41;;
    
    			Echo "<table cellpadding = 5 cellspacing=0 border=0 width=" . $iTableWidth . " class='TablePage_Boxed'>\n";
    			$bDone = False;
    			While &#40; ! $bDone &#41;
    			&#123;
    				Echo "<tr>";
    				For &#40; $x = 1; $x <= $iNumColumns; $x++ &#41;
    				&#123;
    					If &#40; $rsRow = DB_Fetch&#40;$rsRecordSet&#41; &#41;
    					&#123;
    						Echo "<td align=center valign=top>";
    						If &#40; ! $bDispAllImages &#41; &#123;
    							DispThumb&#40; $rsRow&#91;"ImageUnq"&#93;, $iGalleryUnq, $sAccountUnq, Trim&#40;$rsRow&#91;"Thumbnail"&#93;&#41;, Trim&#40;$rsRow&#91;"AltTag"&#93;&#41;, $rsRow&#91;"Position"&#93;, Trim&#40;$rsRow&#91;"ImageSize"&#93;&#41;, Trim&#40;$rsRow&#91;"Image"&#93;&#41;, Trim&#40;$rsRow&#91;"FileType"&#93;&#41;, $rsRow&#91;"AddDate"&#93;, Trim&#40;$rsRow&#91;"Title"&#93;&#41;, Trim&#40;$rsRow&#91;"PrimaryG"&#93;&#41; &#41;;
    						&#125;Else&#123;
    							DispThumb&#40; $rsRow&#91;"ImageUnq"&#93;, $rsRow&#91;"GalleryUnq"&#93;, $rsRow&#91;"AccountUnq"&#93;, Trim&#40;$rsRow&#91;"Thumbnail"&#93;&#41;, Trim&#40;$rsRow&#91;"AltTag"&#93;&#41;, $rsRow&#91;"Position"&#93;, Trim&#40;$rsRow&#91;"ImageSize"&#93;&#41;, Trim&#40;$rsRow&#91;"Image"&#93;&#41;, Trim&#40;$rsRow&#91;"FileType"&#93;&#41;, $rsRow&#91;"AddDate"&#93;, Trim&#40;$rsRow&#91;"Title"&#93;&#41;, Trim&#40;$rsRow&#91;"PrimaryG"&#93;&#41; &#41;;
    						&#125;
    						Echo "</td>";
    					&#125;Else&#123;
    						Echo "<td></td>";
    						$bDone = True;
    					&#125;
    				&#125;
    				Echo "</tr>\n";
    			&#125;
    			Echo "</table>\n";
    			
    			Echo $sRecordsetNav;
    		&#125;Else&#123;
    			DOMAIN_Message&#40;"This gallery is locked and requires special access to view the images within it.", "ERROR"&#41;;
    		&#125;
    	&#125;
    Da meine eigenen PHP Kentnisse wie es scheint noch zu schwach sind bin ich leider nicht in der Lage den Punkt zu lokalisieren wo bzw wie genau ich etwas umändern muss. Gibt es dafür irgend einen speziellen Befehl um die Prüfung der Funktion mehrmals ausführen zu lassen? Weil so wie es momentan ist wird die Prüfung nur einmal durchgeführt und anschließend bis zum letzten Bild durchkopiert.

    Fals die Bildfunktion dafür benötigt wird sagt ruig bescheid, war mir nicht sicher ob sie hier benötigt wird, da sie wie gesagt nur ,,ein" Bild erzeugt (bzw. erzeugen sollte, der Macher der Galerie hat dort jedenfalls drangeschrieben das sie jeweils ein Bild erzeugt und so les ich das ganze auch aus der Funktion heraus). Wollte sie hier aber auch nicht unbedingt reinsetzen da sie etwas über 100 zeilen fasst (ungefähr 150 Forumszeilen wenn ich die Links zu den Bildern drin lasse )

    Wäre über jeden nützlichen Hinweis sehr Dankbar.

    Verkleinerung bei 7 Bildern breiter als hoch und einem höher als breit:
    http://img115.imageshack.us/img115/5...leriejkkv1.jpg

    MfG Gamorreaner
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    das machst du nicht in er übersicht, sondern in der thumpnail dateil.. also im script, was die thumbs generiert. dieses wird ja nur von der übersicvhst seite aus mit paramtern gefüttert.

  3. #3
    Youngster
    Themenstarter

    Registriert seit
    02.03.2007
    Beiträge
    12
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ok, dann schonmal recht herzlichen Dank. Das schränkt das ganze natürlich dann um die Hälfte ein . Ich bin davon ausgegangen das man das als Art If Schleife dort eingeben musste, aber damit lag ich dann wol vollkommen falsch .

    Dann mal zu der Funktion an sich:

    Code:
    Function DispThumb&#40; $iImageUnq, $iGalleryUnq, $sAccountUnq, $sThumbnail, $sAltTag, $iImageNum, $sImageSize, $sImage, $sType, $sAddDate, $sTitle, $iPrimaryG &#41;
    	&#123;
    		Global $iDBLoc;
    		Global $iNumColumns;
    		Global $sSort;
    		Global $iTtlNumItems;
    		Global $iCategoryUnq;
    		Global $iNumPerPage;
    		Global $aVariables;
    		Global $aValues;
    		Global $iTextScheme;
    		Global $iColorScheme;
    		Global $iThumbWidth;
    		Global $sNewDays;
    		Global $sGalleryPath;
    		Global $sSiteURL;
    		
    		$bIsImage = False;
    		
    		// Only display this if the primary file exists.
    		$sTempAlt = $sAltTag;
    		If &#40; $sAltTag == "" &#41;	// if alt tag is blank, use the image name &#40;switch is back to sTempAlt below&#41;
    			$sAltTag = $sTitle;
    	
    		$sTempImage = $sTitle;
    		If &#40; $sTempImage == "" &#41;
    			$sTempImage = $sImage;
    		If &#40; strlen&#40;$sTempImage&#41; > 12 &#41;
    			$sTempImage = substr&#40;$sTempImage, 0, 12&#41; . "...";
    
    		If &#40; Trim&#40;strtoupper&#40;DOMAIN_Conf&#40;"IMAGEGALLERY_USEALPHA"&#41;&#41;&#41; == "YES" &#41;
    			$sAlphaCode = " style='filter&#58;alpha&#40;opacity=85&#41;' onMouseOver='UseAlpha&#40;this,0&#41;' onMouseOut='UseAlpha&#40;this,2&#41;'";
    		
    		$aVariables&#91;0&#93; = "iDBLoc";
    		$aVariables&#91;1&#93; = "iGalleryUnq";
    		$aVariables&#91;2&#93; = "iNumColumns";
    		$aVariables&#91;3&#93; = "sSort";
    		$aVariables&#91;4&#93; = "iTtlNumItems";
    		$aVariables&#91;5&#93; = "iCategoryUnq";
    		$aVariables&#91;6&#93; = "iNumPerPage";
    		$aVariables&#91;7&#93; = "iImageUnq";
    		$aValues&#91;0&#93; = $iDBLoc;
    		$aValues&#91;1&#93; = $iGalleryUnq;
    		$aValues&#91;2&#93; = $iNumColumns;
    		$aValues&#91;3&#93; = $sSort;
    		$aValues&#91;4&#93; = $iTtlNumItems;
    		$aValues&#91;5&#93; = $iCategoryUnq;
    		$aValues&#91;6&#93; = $iNumPerPage;
    		$aValues&#91;7&#93; = $iImageUnq;
    	
    		G_STRUCTURE_FileType&#40;$sType, $bIsImage, $iImageUnq, "../../", 0&#41;;
    
    		?>
    		<table cellpadding=0 cellspacing=0 border=0 width=<?=$iThumbWidth?> class='TablePage_Boxed'>
    			<tr>
    				<?php 
    		
    $sQuery			= "SELECT I.XSize, I.YSize, I.Thumbnail, IG.PrimaryG FROM Images I &#40;NOLOCK&#41;, ImagesInGallery IG &#40;NOLOCK&#41;, Galleries G &#40;NOLOCK&#41; WHERE IG.GalleryUnq = " . $iGalleryUnq . " AND G.GalleryUnq = " . &#40;INT&#41;$iGalleryUnq . " AND IG.ImageUnq = I.ImageUnq AND I.Thumbnail != '' ORDER BY ImageNum";
    
    $rsRecordSet = DB_Query&#40;$sQuery&#41;;
    $rsRow = DB_Fetch&#40;$rsRecordSet&#41;;
    $sXSize			= Trim&#40;$rsRow&#91;"XSize"&#93;&#41;;
    $sYSize			= Trim&#40;$rsRow&#91;"YSize"&#93;&#41;;
    $doo  = DOMAIN_Link&#40;"G"&#41;;
    $doo1 = DOMAIN_Conf&#40;"IG"&#41;;
    $doo2 = DOMAIN_Conf&#40;"IMAGEGALLERY_MISSING_THUMBNAIL"&#41;;
    $doo3 = htmlentities&#40;$sAltTag&#41;;
    
    If &#40; strtoupper&#40;Trim&#40;DOMAIN_Conf&#40;"IMAGEGALLERY_DOMAINCHECK"&#41;&#41;&#41; == "YES" &#41; &#123;
    
    If&#40;$sXSize >= $sYSize&#41;&#123;	
    	echo "<td colspan=3 align=center> <a href = 'ImageDetail.php?$doo'><img src = \"$sSiteURL/Attachments/DispThumb.php?sAccountUnq=$sAccountUnq&sThumbnail=$sThumbnail&iGalleryUnq=$iPrimaryG\" width=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode></a></td>";&#125; 
    Elseif&#40;$sXSize < $sYSize&#41;&#123; 
    	echo "<td colspan=3 align=center> <a href = 'ImageDetail.php?$doo'><img src = \"$sSiteURL/Attachments/DispThumb.php?sAccountUnq=$sAccountUnq&sThumbnail=$sThumbnail&iGalleryUnq=$iPrimaryG\" height=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode></a></td>";&#125;
    
    &#125;Else&#123;
    
    				$sFilePath = $sGalleryPath . "/" . $sAccountUnq . "/" . $iPrimaryG . "/Thumbnails/" . $sThumbnail;
    				$sFilePath	= str_replace&#40;"\\", "/", $sFilePath&#41;;
    				$sFilePath	= str_replace&#40;"//", "/", $sFilePath&#41;;
    			
    				If &#40; file_exists&#40;$sFilePath&#41; && &#40; is_file&#40;$sFilePath&#41; &#41; &#41;&#123;
    					If&#40;$sXSize >= $sYSize&#41; &#123;
    					echo "<td colspan=3 align=center><a href = \"ImageDetail.php?$doo\"><img src = \"$doo1/$sAccountUnq/$iPrimaryG/Thumbnails/$sThumbnail\" width=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode> </a></td>";&#125;
    					 Elseif&#40;$sXSize < $sYSize&#41; &#123;
    					echo "<td colspan=3 align=center><a href = \"ImageDetail.php?$doo\"><img src = \"$doo1/$sAccountUnq/$iPrimaryG/Thumbnails/$sThumbnail\" height=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode> </a></td>";&#125;
    	
    				&#125;Else&#123; 
    
    					If&#40;$sXSize >= $sYSize&#41;&#123;
    					echo "<td colspan=3 align=center><a href = \"ImageDetail.php?$doo\"><img src = \"$doo2\" width=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode> </a></td>";&#125;
    					 Elseif&#40;$sXSize < $sYSize&#41; &#123;
    					echo "<td colspan=3 align=center><a href = \"ImageDetail.php?$doo\"><img src = \"$doo2\" height=$iThumbWidth alt = \"$doo3\" border=0$sAlphaCode> </a></td>";&#125;
    	
    			&#125;&#125;	 ?>
    			</tr>
    			<tr><td colspan=3 bgcolor=<?=$GLOBALS&#91;"BorderColor2"&#93;?>><img src = "Images/Blank.gif" width=1 height=1></td></tr>
    			<tr>
    				<td width=100% align=center><font color='<?=$GLOBALS&#91;"PageText"&#93;?>' size=-2>#<?=number_format&#40;$iImageNum,0&#41;?></font></td>
    				<td width=1 bgcolor=<?=$GLOBALS&#91;"BorderColor2"&#93;?>><img src = "Images/Blank.gif" width=1 height=1></td>
    				<td width=100% align=center><font size=-2><?=number_format&#40;$sImageSize/1024,0&#41;?>k</font></td>
    			</tr>
    			<tr><td colspan=3 bgcolor=<?=$GLOBALS&#91;"BorderColor2"&#93;?>><img src = "Images/Blank.gif" width=1 height=1></td></tr>
    			<tr>
    				<td colspan=3 align=center><a href = 'ImageDetail.php?<?=DOMAIN_Link&#40;"G"&#41;?>' class='SmallNavPage'><?=$sTempImage?></a></td>
    			</tr>
    			<tr><td colspan=3 bgcolor=<?=$GLOBALS&#91;"BorderColor2"&#93;?>><img src = "Images/Blank.gif" width=1 height=1></td></tr>
    			<tr>
    				<td colspan=3 align=center><?php 
    					If &#40; ! $bIsImage &#41;
    						Echo "[img]Images/MediaIcons/" . $sType . ".gif[/img]";
    					?><a href = 'ImageDetail.php?<?=DOMAIN_Link&#40;"G"&#41;?>' class='SmallNav2'>Details</a></td>
    			</tr>
    		</table>
    		<?php 
    		If &#40; DateDiff&#40;"d", $sAddDate, time&#40;&#41;&#41; <= $sNewDays &#41;
    			Echo "[img]" . G_STRUCTURE_DI&#40;"NewImage.gif", $GLOBALS&#91;"SCHEMEBASED"&#93;&#41; . "[/img]";
    
    	&#125;

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    so wie es ausschaut, sind die thumb größen vorher festgelegt. aber das kann man so relativ schwer beurteilen.


    habe da jetzt nicht so die zeit für.

  5. #5
    Youngster
    Themenstarter

    Registriert seit
    02.03.2007
    Beiträge
    12
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo.
    Die Thumbgrößen sind dahingehend festgelegt das man sie im Adminbereich festlegen kann. Da vorher nur eine Breitenverkleinerung im Script enthalten war kommt dieser Name ($iThumbWidth) zustande. Ich habe den Wert bei mir auf 100 eingestellt und da ich beide Seiten je nachdem welche höher bzw breiter ist auf 100 Pixel Höhe bzw Breite schrumpfen lassen will habe ich dies bei beiden eingesetzt. Fals ich jetzt plötzlich (was ich eigentlich nicht vorhab) die Breite/ Höhe der Thumbnails vergößern/verkleinern will so muss ich da dann nur einen Wert im Adminmenü umändern anstatt 2. Ich gehe mal davon aus das es das ist was du wissen wolltest.

    Mfg Gamorreaner

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also ich sehe so durch das script nicht ganz durch, da es relativ umfangreich ist und ich halt nicht den gesamten zusammenhang kenne.

    also was die option ist:
    DOMAIN_Conf("IMAGEGALLERY_DOMAINCHECK")

    und ob diese nun auf yes ist oder nicht... (da hat einer noch nichts von boolen werten gehört)
    diese funktion prüft nach meiner meinung, auf bilder klau.

    aber ansonsten wird ja folgendes angezeigt:
    $doo1/$sAccountUnq/$iPrimaryG/Thumbnails/$sThumbnail

    das heisst, die thumpnails wurden schon beim hochladen genriert und nun nur noch angezeigt. das heist, du kannst ihre größe nun garnicht beeinflussen. höchstens das width="" im img tag... aber dadurch hastdu ja bloß eine quetschung des browsers erreicht...

    das heist, du kannst es auf diese weise nicht höhe und breite gleichzeittig beeinflussen. also immer nur eins und das auch nur bis zur max größe der thumpnails (im adminbereich fest zu legen... wirkt isch nur auf neue bilder aus)

    dazu ist zu sagen, das die quetschung der bilder meist eine scheiss qualität hat...

    also wenn z.B. alle bilder in 100x100px haben willst, musst du dieses in der class ändern, die die bilder beim hochladen verkleinert...

    welches aber recht aufwändig ist.

  7. #7
    Youngster
    Themenstarter

    Registriert seit
    02.03.2007
    Beiträge
    12
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Nene, die Verkleinerung der Bilder ist qualitativ so schon optimal, da das nach Höhe und Breite verkleinert wird und nicht nur in eine dieser beiden Richtungen.

    Und ja es werden Thumbnails in einem Ordner (bzw in mehreren) der Galerie abgespeichert, die größe der Thumbnails richtet sich dabei aber wie ich festgestellt habe nach der Vorgabe im Adminmenü ($iThumbWidth), welche bereits auf 100 Pixeln steht und deshalb hat die Verkleinerung der Bilder dort auch keine Auswirkung auf Bilder die breiter als hoch sind.

    Bei der Sache mit dem DOMAIN_Conf("IMAGEGALLERY_DOMAINCHECK") weiss ich selbst nicht so recht. Aber da könntest du schon recht haben, denn in der Galerie ist eine Funktion eingebaut, welche einen maximalen download der Bilder pro Tag festlegt.

    also wenn z.B. alle bilder in 100x100px haben willst, musst du dieses in der class ändern, die die bilder beim hochladen verkleinert...
    Das wäre natürlich auch eine Möglichkeit, welche ich mir mal etwas genauer angucken werde. Allerdings dann aber nicht mit 100x100, da es sonst in der Tat alles sehr zerquetscht wirken würde.

    Ich werde dann mal versuchen direkt schon beim Thumbnailerzeugen diese Prüfung nach Höhe und Breite einzubauen, weil dann kann ich hier ja anschließend die Höhen- und Breitenprüfung komplett ausbauen und das Problem wäre erledigt.

    Vielen Dank schonmal bis hierhin. Du hast mir sehr weitergeholfen. Ich selbst bin doofer Weise garnicht darauf gekommen das Problem schon an der im Zitat verwendeten Stelle beheben zu wollen, aber bekanntlich sieht man manchmal den Wald vor lauter Bäumen nicht mehr . Ich werde warscheinlich erst am Wochenende dazu kommen das ganze dann auszuprobieren, aber vielleicht schaff ich das dann ja auch ohne Hilfe. Die dafür zuständige PHP Datei hat zwar knapp 800 Zeilen aber mal sehen, vielleicht ist sie ja für einen PHP Anfänger wie mich leichter zu verändern/verstehen als die andere .

    Mfg Gamorreaner

    €: So habe es grade eben hinbekommen. Das ging ja wirklich extrem einfach (Schulkenntnisse von der 8ten um x und y zu berechnen und ein wenig PHP-Kenntnisse)...und ich dussel zerbrech mir mehrere Wochen darüber den Kopf wie ich es in der Thmbnail.php so umschreiben kann das es passt . Vielen Dank nochmals!

Ähnliche Themen

  1. Mehrfache Datenbankeinträge statt einen.
    Von Gastuser im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 03.11.2006, 12:45
  2. Mehrfache Antworten bei Fragebögen
    Von RED im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 17.10.2005, 23:04

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •