Sida 2 av 2
Re: Infoga bilder
Postat: 22 aug 2016 18:19
av TiborBlomhall
OK, hinner inte mer idag.
Återställt koden till det gamla.
Kan nån mejla mig 4 iPhone bilder tagna ett åt varje håll (dvs med 90 graders rotation mellan varje bild?) så kan jag testa själv?
tibor.blomhall teslaclubsweden.se
Re: Infoga bilder
Postat: 22 aug 2016 18:22
av TiborBlomhall
Förresten det är ju massor med folk som kan mer om php än mig här på forumet. Vad är det som är fel:
Kod: Markera allt
// Modify these params accordingly to suit your installation
$nMaxWidth = 1024;
$nMaxHeight = 1024;
$nJPEGCompression = 75;
$imgMaxBytes = 256*1024;
// You may want to modify this "if this attachment an image" check.. at the moment I'm using this:
if (strpos($file->get('mimetype'), 'image/') === 0) {
$sImgSourceFilename = $file->get('filename');
$imgBytes = $file->get('filesize');
if ($arrImageData = @getimagesize($sImgSourceFilename)) {
$nImageType = $arrImageData[2];
switch ($nImageType) {
case IMG_GIF:
$imgSource = @imagecreatefromgif($sImgSourceFilename);
break;
case IMG_JPG:
$imgSource = @imagecreatefromjpeg($sImgSourceFilename);
break;
case IMG_PNG:
$imgSource = @imagecreatefrompng($sImgSourceFilename);
break;
case IMG_WBMP:
$imgSource = @imagecreatefromwbmp($sImgSourceFilename);
break;
default:
$imgSource = null;
break;
}
// Assuming we managed to read in the image OK..
if ($imgSource) {
$nImgWidth = $arrImageData[0];
$nImgHeight = $arrImageData[1];
$doResize = false;
/* $exif = exif_read_data($sImgSourceFilename);
if (!empty($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 3:
$imgSource2 = imagerotate($imgSource, 180, 0);
$doResize = true;
break;
case 6:
$imgSource2 = imagerotate($imgSource, -90, 0);
$nImgWidth = $arrImageData[1];
$nImgHeight = $arrImageData[0];
$arrImageData[1] = $nImgWidth;
$arrImageData[0] = $nImgHeight;
$doResize = true;
break;
case 8:
$imgSource2 = imagerotate($imgSource, 90, 0);
$nImgWidth = $arrImageData[1];
$nImgHeight = $arrImageData[0];
$arrImageData[1] = $nImgWidth;
$arrImageData[0] = $nImgHeight;
$doResize = true;
break;
}
imageDestroy($imgSource);
$imgSource = $imgSource2;
}
*/
if ($nImgHeight > $nMaxHeight || $nImgWidth > $nMaxWidth || $imgBytes > $imgMaxBytes) {
$doResize = true;
// otherwise image width and/or height exceed our max dimensions
// work out the new widht/height for downward proportional resampling:
if ($nImgHeight > $nMaxHeight) {
$nRatio = ($nImgWidth / $nImgHeight);
$nImgHeight = $nMaxHeight;
$nImgWidth = round($nMaxHeight * $nRatio);
}
if ($nImgWidth > $nMaxWidth) {
$nRatio = ($nImgHeight / $nImgWidth);
$nImgWidth = $nMaxWidth;
$nImgHeight = round($nMaxWidth * $nRatio);
}
}
if ($doResize) {
$imgScaled = ImageCreateTrueColor($nImgWidth, $nImgHeight);
if (imagecopyresampled($imgScaled, $imgSource, 0, 0, 0, 0, $nImgWidth, $nImgHeight, $arrImageData[0], $arrImageData[1]))
imagejpeg($imgScaled, $sImgSourceFilename, $nJPEGCompression);
imageDestroy($imgScaled);
}
imageDestroy($imgSource);
}
}
}
Koden för import av bilder i forumet, de skalas om de är för stora.
EXIF-roteringen jag la till är det bortkommenterade i koden. Resten fanns där sen förut.
Re: Infoga bilder
Postat: 22 aug 2016 18:47
av Svenssons
Kan inte testa detta själv, bara lite snabb Google Fu men det kanske är fel version av phpBB så att det kanske inte funkar:
https://www.phpbb.com/community/viewtop ... #p13241074
Re: Infoga bilder
Postat: 22 aug 2016 19:19
av bylund
TiborBlomhall skrev:OK, hinner inte mer idag.
Återställt koden till det gamla.
Kan nån mejla mig 4 iPhone bilder tagna ett åt varje håll (dvs med 90 graders rotation mellan varje bild?) så kan jag testa själv?
tibor.blomhall teslaclubsweden.se
Skickat.
Re: Infoga bilder
Postat: 22 aug 2016 19:32
av TiborBlomhall
Tack alla, nu har jag fått bilder att leka med

Re: Infoga bilder
Postat: 22 aug 2016 19:34
av mati
TiborBlomhall skrev:Förresten det är ju massor med folk som kan mer om php än mig här på forumet. Vad är det som är fel:
Kod: Markera allt
$imgSource2 = imagerotate....
$nImgWidth = $arrImageData[1];
$nImgHeight = $arrImageData[0];
$arrImageData[1] = $nImgWidth;
$arrImageData[0] = $nImgHeight;
Jag är ingen expert på php, men du kopierar bredd till bredd och höjd till höjd. Ska det inte index 0 och 1 vara tvärtom i de sista raderna?
Re: Infoga bilder
Postat: 22 aug 2016 20:10
av TiborBlomhall
Jag verkar ha fått till det nu!
Istället för att försöka kombinera skalning och rotation skalar jag nu först, och sedan roterar den lilla bilden. Då funkar det.
Kan ni testa lägga upp från iPhone nån felvänd bild?
Re: Infoga bilder
Postat: 22 aug 2016 20:22
av Tars

Ska vara uppochner
Re: Infoga bilder
Postat: 22 aug 2016 20:23
av Tars
Vi har förresten strömavbrott. En stackars grävmaskinist grävde av den och det resulterade i 814 hem utan el.
Skulle ha installerat batterbackupen som ligger i pannrummet......
Re: Infoga bilder
Postat: 22 aug 2016 20:35
av TiborBlomhall
Tars skrev:
Ska vara uppochner
Tack men nån som kan ladda upp direkt från iphone via webbsidan, inte Tapatalk.
Re: Infoga bilder
Postat: 22 aug 2016 20:45
av Tars
TiborBlomhall skrev:Tars skrev:
Ska vara uppochner
Tack men nån som kan ladda upp direkt från iphone via webbsidan, inte Tapatalk.
Aha, sorry.
Re: Infoga bilder
Postat: 22 aug 2016 21:13
av bylund
Re: Infoga bilder
Postat: 22 aug 2016 21:17
av TiborBlomhall
* V * I * C * T * O * L * Y * ! *

Re: Infoga bilder
Postat: 22 aug 2016 21:22
av bylund
Eftersom jag ändå bara väntar testar vi Android också
Re: Infoga bilder
Postat: 22 aug 2016 22:27
av danni
Bra jobbat, Tibor!
Re: Infoga bilder
Postat: 23 aug 2016 09:33
av Pontus
Provar samma bild som tidigare.
Re: Infoga bilder
Postat: 23 aug 2016 09:35
av Pontus
Ha, va bra. Du har förlängt livet på min iphone då det nu var nära att den gavs till någon mindre varsam person (en unge).
