[GDlib] resizen zonder uitrekken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Front-end Developer

Functie omschrijving Gezocht front-end developer! Voor een toffe organisatie in de regio Rhenen zij wij op zoek naar een front-end developer die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. In deze functie heb je een adviserende rol en beschik je over een grote dosis vakinhoudelijke kennis. Samen met collega’s en klanten overleg je om aangeleverde designs om te zetten naar unieke concepten. Zo draag jij je steentje bij aan de groeiambities van de klant. Voor klanten wordt jij het vaste aanspreekpunt als het gaat over planningen hierin houdt je alle betrokkenen goed op de

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Junior Software developer

Functie Als junior .NET ontwikkelaar start jij in een compact team met drie ervaren .NET ontwikkelaars. Wij werken op projectbasis en begeleiden zelf het hele traject van A tot Z. Wij bieden jou dan ook een brede functie aan met veel technische uitdaging! Ons traject ziet er als volgt uit: 1) Wij analyseren de behoefte van onze klant 2) Wij werken de behoefte uit en vertalen dit naar technische werkzaamheden en maken een uren/kosten schatting; 3) Wij gaan aan de slag met het ontwikkelen van het product met directe feedback van de klant, zodat datgene gerealiseerd wordt, wat gewenst is;

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »
Daan Onbekend

Daan Onbekend

13/11/2009 23:00:00
Quote Anchor link
Hallo,

Ik ben op zoek naar een manier waarmee ik een afbeelding kan resizen waarbij hij de grootte van een vooraf ingesteld kader aanneemt.

Wat is hier een slimme manier voor?

Ik gebruik nu een manier waarbij hij hem eerst binnen een vierkant krijgt, en later knipt hij dan alsnog de randjes eraf. Maar dit werkt slecht als de afbeelding al de goede verhoudingen heeft, dan worden er namelijk onnodig randen afgeknipt.
 
PHP hulp

PHP hulp

27/05/2026 04:54:53
 
Emmanuel Delay

Emmanuel Delay

14/11/2009 13:16:00
Quote Anchor link
Indien de files op jouw server staan, kan je met getimagesize werken. Indien de images elders staan, lukt dit meestal niet.

bv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$afb
= "img/flag.jpg";  // elkel relatief pad gegruiken, geen http:// ...
list($width, $height, $type, $attr) = getimagesize($afb);  
?>


En dan is het gewoon een kwestie van rekenen.
Hoe groot is je kader?
 
Igor

Igor

14/11/2009 16:27:00
Quote Anchor link
Hier heb je een stukje code wat ik gebruik om van een geuploade afbeelding een thumbnail te maken (in de juiste verhoudingen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
if (strtolower($extensie) == "jpg" || strtolower($extensie) == "jpeg" || strtolower($extensie) == "png" || strtolower($extensie) == "gif")
    {

        $afbeelding = $_FILES[$upload_name]['tmp_name'];
                
        // Afbeelding verkleinen
        
            // Set a maximum height and width

            $width = 80;
            $height = 48;
            
            // Get new dimensions
            list($width_orig, $height_orig) = getimagesize($afbeelding);
            
            $ratio_orig = 1;
            
            if($width_orig >= $height_orig)
            {

                $percent = $width / $width_orig;
                $width_new = round($width_orig * $percent);
                $height_new = round($height_orig * $percent);
                
                if($height_new > $height)
                {

                    $percent = $height / $height_new;
                    $width_new = round($width_new * $percent);
                    $height_new = round($height_new * $percent);
                }
            }

            else
            {
                $percent = $height / $height_orig;
                $width_new = round($width_orig * $percent);
                $height_new = round($height_orig * $percent);
                
                if($width_new > $width)
                {

                    $percent = $width / $width_new;
                    $width_new = round($width_new * $percent);
                    $height_new = round($height_new * $percent);
                }
            }

            
        // Resample
        $image_p = imagecreatetruecolor($width_new, $height_new);
        if (strtolower($extensie) == "jpg" || strtolower($extensie) == "jpeg")
        {

            $image = imagecreatefromjpeg($afbeelding);
        }

        elseif (strtolower($extensie) == "png")
        {

            $image = imagecreatefrompng($afbeelding);
        }

        elseif (strtolower($extensie) == "gif")
        {

            $image = imagecreatefromgif($afbeelding);
        }

        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width_new, $height_new, $width_orig, $height_orig);
        
        // Output
        imagepng($image_p, "thumbs/naampje.png");
    }

?>


Je moet hierbij wel in de $extensie aangeven welke type afbeelding het is.

Hopelijk kom je hiermee een beetje uit de voeten.
 
Emmanuel Delay

Emmanuel Delay

14/11/2009 16:51:00
Quote Anchor link
Ja, that's it.

Eventueel vorm je dat vlug om tot een functie, met als parameters ($img, $maxWidth, $mahHeight).
 
Daan Onbekend

Daan Onbekend

14/11/2009 20:27:00
Quote Anchor link
@igor

Dat script is niet wat ik zoek,

Ik wil namelijk een afbeelding verkleinen, maar dan moet het resultaat uitgesneden worden tot een vooraf ingestelde verhouding.

Ik gebruikt voor een andere website dit script:
http://phphulp.nl/forum/showtopic.php?cat=1&id=66438
(zie laatste reactie)

Maar dat werkt alleen als het resultaat vierkant moet zijn, maar ik wil het resultaat dus 200 x 320 hebben.
 
Emmanuel Delay

Emmanuel Delay

15/11/2009 12:45:00
Quote Anchor link
Die 200 x 300 pixel moeten volledig gevuld zijn en eventueel moet er een stuk worden afgesneden, juist?
 
Daan Onbekend

Daan Onbekend

15/11/2009 13:14:00
Quote Anchor link
Dat klopt, ik heb nu iets dat werkt.

Maar dat doe ik op de volgende manier:

Ik heb een willekeurige afbeelding.
Die resize ik zo, dat de kortste kant 320 pixels is, en dat de verhoudingen gelijk blijven.

Dan snij ik de randen eraf zodat ik een vierkant van 320x320 overhoud.

En daar snij ik dan 200x320 uit.

Het probleem hiervan is merkbaar als de afbeelding al de goede verhouding heeft.

Dus bijvoorbeeld een afbeelding van 2000x3200, wordt dan eerst vierkant gemaakt om hem vervolgens weer 200x320 te maken.

Hiermee verlies je onnodig een rand.
 
Emmanuel Delay

Emmanuel Delay

15/11/2009 13:19:00
Quote Anchor link
Ben je hier iets mee?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
$afb
= "images/1.jpg";  // elkel relatief pad gegruiken, geen http:// ...
echo '<pre>'. $width.' '.$height.' '.$type.' '.$attr .'</pre>';
$kaderWidth = 300;
$kaderHeight = 200;

$attr1 = imageAttrInKader($afb, $kaderWidth, $kaderHeight, 'vullen');
$attr2 = imageAttrInKader($afb, $kaderWidth, $kaderHeight, 'volledig');

echo '<html>
  <head>
    <style>
      .kader{width: '
. $kaderWidth .'px; height: '. $kaderHeight .'px; border: 1px solid #000000; margin: 3px;}
    </style>
  </head>
  <body>
    <div class="kader"><img '
. $attr1 .' src="'. $afb .'"/></div>
    <div class="kader"><img '
. $attr2 .' src="'. $afb .'"/></div>
  </body>
</html>'
;

function
imageAttrInKader($src, $kaderWidth, $kaderHeight, $option)
{

  try
  {
    list($width, $height, $type, $attr) = getimagesize($src);  
    $hellingImage = $height / $width;
    $hellingKader = $kaderHeight / $kaderWidth;
    switch ($option)
      {
        case
'vullen':   // het kader wordt volledig gevuld met de image.  Eventueel wordt een deel van de image uitgesneden
          if ($hellingImage > $hellingKader)
            {

              return ' width="'. $kaderWidth .'" ';
            }

          else
            {
              return ' height="'. $kaderHeight .'" ';
            }

          break;
        case
'volledig': // De image wordt volledig getoond, eventueel blijft een deel van het kader blanco
          if ($hellingImage < $hellingKader)
            {

              return ' width="'. $kaderWidth .'" ';
            }

          else
            {
              return ' height="'. $kaderHeight .'" ';
            }

          break;
      }
  }

  catch(Exception $e)
  {

    return null;
  }
}

?>


Edit: je kan ook best dit toevoegen aan de css van kader:
text-align: center; overflow: hidden;
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Jan Koehoorn

Jan Koehoorn

15/11/2009 13:46:00
Quote Anchor link
'Daan:
Het probleem hiervan is merkbaar als de afbeelding al de goede verhouding heeft.

Dus bijvoorbeeld een afbeelding van 2000x3200, wordt dan eerst vierkant gemaakt om hem vervolgens weer 200x320 te maken.

Hiermee verlies je onnodig een rand.

Dan check je toch eerst met getimagesize wat de verhouding w x h is? Is die 1.6, dan hoef je alleen maar te resizen en niet te croppen.
 
Daan Onbekend

Daan Onbekend

15/11/2009 14:06:00
Quote Anchor link
Daar heb ik al aan zitten denken, maar als de verhouding dan 1.5 is, dan heb je nog steeds het zelfde probleem alleen in kleinere mate.
 
Emmanuel Delay

Emmanuel Delay

15/11/2009 15:30:00
Quote Anchor link
Toon eens wat je nu zelf hebt en waar je denkt dat er problemen zijn.
 
Jan Koehoorn

Jan Koehoorn

15/11/2009 18:10:00
Quote Anchor link
Ik heb even iets gemaakt. Het is een begin en er moeten nog veel meer checks op, maar het werkt. Voor een online voorbeeld, zie:

Jan Koehoorn: image upload met crop en resize

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
    /****
    *    crop image naar 200 * 320
    *    dat betekent een ratio w * h van 0.625
    */

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if ($_FILES['userfile']['error'] == 0) {
            list ($src_w, $src_h) = getimagesize ($_FILES['userfile']['tmp_name']);
            $ratio = $src_w / $src_h;
            $img = new Imagick ($_FILES['userfile']['tmp_name']);
            if ($ratio > 0.625) {
                $img->scaleImage (0, 320);
                $img->writeImage ('phphulp_uncropped.jpg');
                $img->cropImage (200, 320, round (($img->getImageWidth () - 200) / 2), 0);
            }

            elseif ($ratio < 0.625) {
                $img->scaleImage (200, 0);    
                $img->writeImage ('phphulp_uncropped.jpg');
                $img->cropImage (200, 320, 0, round (($img->getImageHeight () - 320) / 2));
            }

            else {
                $img->scaleImage (200, 320);    
                $img->writeImage ('phphulp_uncropped.jpg');
            }

            $img->writeImage ('phphulp.jpg');
            $img->destroy ();
        }
    }

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>PHPHulp voorbeelden</title>

    <link rel="stylesheet" type="text/css" media="screen" href="http://www.jankoehoorn.nl/phphulp/reset.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="http://www.jankoehoorn.nl/phphulp/stylesheet.css" />
</head>

<body>
    
    <div id="container">

        <div id="header">
            <h1>Jan Koehoorn | PHPHulp voorbeelden</h1>
        </div>

        <div id="form">
            <form method="post" action="image-upload-crop-resize.php" enctype="multipart/form-data">
                <input id="userfile" name="userfile" type="file" />
                <input type="submit" value="upload" />
            </form>
        </div>    

        <div id="image">
            <p>Cropped image:</p>
            <p><img style="border: 1px solid black;" src="phphulp.jpg" /></p>
            <p>Uncropped image:</p>
            <p><img style="border: 1px solid black;" src="phphulp_uncropped.jpg" /></p>

        </div>
    </div>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Daan Onbekend

Daan Onbekend

15/11/2009 20:34:00
Quote Anchor link
@Jan,

Dit is precies wat ik zocht, geweldig!
 
Jan Koehoorn

Jan Koehoorn

15/11/2009 21:35:00
Quote Anchor link
Mooi zo, en graag gedaan ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.