[Megoldva] Sok kép beszúrása véletlenszerűen elrendezve

Fórumok

Sziasztok!

A következőt szeretném megoldani.
Egy bemutató egy diájára vagy egy doksi egy oldalára szeretnék elhelyezni több képet véletlenszerű elrendezésben.
Valami hasonlót szeretnék.

A program elsősorban PowerPoint vagy Word, de lehet bármi más amivel megoldható.

Próbáltam keresni, de nem találtam megoldást.

Előre is köszönöm a válaszokat.

Hozzászólások

Nem derül ki, hogy azonos méretű képekről van-e szó, és hogy mi a végcél, de első ránézésre egy X*Y méretű táblázat véletlenszámgenerált koordinátájú celláit tölteném fel html-ben, ami elég jól konvertálható is ha meggondolnám magam.

A végcél, egy adott számú, azonos méretű képeket, teljesen véletlenszerűen tartalmazó dia.
Pár képpel még egyszerű a dolog, mert az ember kézzel szétrakja, de száz képnél már a beszúrás is problémás.

A táblázat szerintem nem jó, mert a táblázat formáját meg fogja tartani, túl szabályos lesz.

A példakép a véletlenszerűtől messze van.
Teljes véletleszerűség kell?
Átfedhetnek egymáson?
Nem baj, ha egyenetlen az eloszlásuk?

Üdv,
Marci

Ajjaj, mégsem: van egyszerű megoldás.
Ha Visio-ban a Print lapon legalul a Page Setup-ot választod, azon belül a Layout and Routing tabot, és bepipálod a "Move other shapes away on drop" jelölőnégyzetet a Macro2 futtatása előtt, az megoldja a problémádat, a lerakott képek nem lesznek átfedőek... :)

Üdv,
Marci

Annyira azért nem vészes :)


<?php
function intersects($rect1,$rect2)
{
return !(
       $rect1['x'] > $rect2['x'] + $rect2['w'] || 
       $rect1['x'] + $rect1['w'] < $rect2['x'] || 
       $rect1['y'] > $rect2['y'] + $rect2['h'] || 
       $rect1['y'] + $rect1['h'] < $rect2['y']
       );
}

use PhpOffice\PhpPowerpoint\Autoloader;
use PhpOffice\PhpPowerpoint\Settings;
use PhpOffice\PhpPowerpoint\IOFactory;
require_once __DIR__ . '/../src/PhpPowerpoint/Autoloader.php';
Autoloader::register();
use PhpOffice\PhpPowerpoint\PhpPowerpoint;
use PhpOffice\PhpPowerpoint\Style\Alignment;
use PhpOffice\PhpPowerpoint\Style\Color;

$objPHPPowerPoint = new PhpPowerpoint();
$currentSlide = $objPHPPowerPoint->getActiveSlide();
$rects=array();
do { 
	$x=rand(0,600); 
	$y=rand(0,600);
	$crect=array("x"=>$x,"y"=>$y,"w"=>247,"h"=>36);
	$nope=0;
	foreach ($rects as $rect)  if (intersects($rect,$crect)) { $nope=true; break; };
	if ($nope) continue;
	$rects[]=$crect;
	$shape = $currentSlide->createDrawingShape();
	$shape->setPath('./resources/phppowerpoint_logo.gif')
              ->setHeight(36)
              ->setOffsetX($crect['x'])
              ->setOffsetY($crect['y']);
       } while (count($rects)<25);
      $xmlWriter = IOFactory::createWriter($objPHPPowerPoint, "PowerPoint2007");
      $xmlWriter->save("out.pptx");
//    $xmlWriter = IOFactory::createWriter($objPHPPowerPoint, "ODPresentation");
//      $xmlWriter->save("out.odp");

Szia!

Tegnap végre sikerült kipróbálnom, működik a dolog.
Két dolgot szeretnék kérdezni:
- úgy tűnik mintha az eredeti kép méretét összenyomná, ezt le tudom valahogyan ellenőrizni
- megoldható-e hogy ha egyszerre kijelölöm és másolom az összes elemet akkor amikor beillesztem, PowerPoint-ba ott ne egy nagy kép legyen, hanem a sok kicsi kép

Köszönöm.

Nem torzítja inkább mintha kisebb lenének a képek mint az eredeti.
Az a gond, ha egy nagy képként illeszti be akkor, ha illeszteni kell a diára torzulnak az eredeti képek.
https://mega.co.nz/#!Rt5FGY5T!D-pZ3suRtsngl9MuBBuVnuYg08cLLiaZI3OZpBMGL…) ehhez hasonlót szeretnék készíteni, csak nem pöttyökkel és több képpel.

Hello,

nekem nem sikerül reprodukálni a problémádat.
Betettem a Visio-ból a képeket az első két slidera, aztán egyedi képekké robbantottam szét (a drawing objektumon belül): http://1drv.ms/1dszBpH
A lépéseket felírtam a slideokra.
Nem látom a hibát. Te látod ebben?

Üdv,
Marci