Une image de 1001 pixels de large coupée en trois ne donne pas trois tuiles de 333. Il donne 333, 334 et 333, et quelle tuile obtient le pixel supplémentaire qui décide si l'image va de nouveau. La façon évidente d'écrire ceci, en divisant la largeur par le nombre et en utilisant cette taille pour chaque tuile, laisse tomber 2 333 pixels sur une image 1 001 par 667 sans rien signaler. Les tuiles sont belles d'elles-mêmes. Les dégâts n'apparaissent que lorsqu'ils sont de retour les uns à côté des autres, comme une fine ligne de la mauvaise chose dans la couture, qui sur une grille Instagram de neuf pièces est le seul endroit que chaque visiteur ressemble.
tl;dr : La division d'une image est une décision arithmétique répétée : où chaque coupe tombe-t-elle lorsque l'image ne se divise pas de manière uniforme ? Le calcul de chaque limite à partir d'une seule séquence arrondie fait que le bord gauche de la tuile n'est à bord droit N+1 que la construction, de sorte que les pièces se rassemblent exactement. Vérifié par hachage : une image 1001x667 divisée en neuf tuiles et collée en arrière produit des pixels bruts avec le même MD5 que l'original,
6fc1f790a418dc1ed3ee3d11747f1c20. L'approche naïve laisse tomber 2 333 pixels à partir de la même image. le séparateur d'images S'exécute dans le navigateur et rend un zip.
Que signifie diviser une image ici ?
Couper une image en un ensemble de plus petits qui le carrelent exactement, sans chevauchement et rien restant.
Deux façons de dire ce que vous voulez. mode grille Prend un certain nombre de lignes et de colonnes, donc un 3 par 3 donne neuf tuiles quelle que soit la taille de l'image. Mode taille Prend une largeur et une hauteur de tuile en pixels, et la grille est cependant nombreuse, la colonne de droite et la rangée du bas étant ce qui reste.
Les emplois qui le sous-tendent sont spécifiques. Une grille Instagram de neuf pièces à partir d'une seule image. Une grande carte ou une affiche brisée en feuilles imprimables. Une feuille de sprite coupée en cadre. Un panorama divisé pour un poste de carrousel. Dans chacune d'elles, les pièces finiront à nouveau à côté, c'est pourquoi les coutures comptent plus que toute autre chose concernant l'opération.
Pourquoi une grille ne se divise-t-elle pas de manière uniforme ?
Parce que les dimensions de l'image sont ce que la caméra produite, et trois y entrent rarement.
Les pixels sont des nombres entiers, donc une coupe tombe sur une limite de pixel ou n'existe pas. Une image dont la largeur n'est pas un multiple du nombre de colonnes a un reste qui doit aller quelque part, et la seule question est de savoir où.
Mesuré sur la séquence que produit le séparateur :
| Largeur de l' | se couper dans | Largeurs de carreaux | addition |
|---|---|---|---|
| 1000 | 3 | 333, 334, 333 | 1000 |
| 1080 | 3 | 360, 360, 360 | 1080 |
| 1001 | 7 | 143 x 7 | 1001 |
| 4032 | 5 | 806, 807, 806, 807, 806 | 4032 |
Le reste est étalé plutôt que déversé. Une image de 1 000 pixels en trois parties donne 333, 334, 333, et non 333, 333, 334, car chaque limite est calculée comme round(total * i / count) de la même séquence. La différence est invisible sur une image et compte sur une grille, où un pixel supplémentaire sur la tuile finale rend la dernière colonne visiblement plus large que le reste.
Notez la troisième ligne. 1001 divisé par 7 est exactement 143, et de nombreuses dimensions se divisent proprement. L'arithmétique ne se montre que lorsqu'elle ne le fait pas.
Comment savez-vous que rien n'est perdu aux coutures ?
En divisant une image et en la reconstituant, puis en comparant les pixels plutôt que de les regarder.
J'ai généré une image 1001 par 667 de bruit déterministe, de sorte que chaque pixel diffère de ses voisins et que toute colonne dupliquée ou abandonnée soit évidente pour un hachage. Ensuite, je l'ai divisé en 3 par 3 en utilisant le propre plan de l'outil, extrait chaque tuile et collé chacun aux coordonnées dont il provenait :
source 1001x667 raw md5 6fc1f790a418dc1ed3ee3d11747f1c20
reassembled 9 tiles raw md5 6fc1f790a418dc1ed3ee3d11747f1c20
identique. Pas similaire, pas visuellement indissociable : les mêmes octets. Aucun pixel n'a été perdu et aucun n'a été dupliqué.
Les carreaux qui l'ont produit ne sont pas tous de la même taille, ce qui est le point :
334x222 333x222 334x222
334x223 333x223 334x223
334x222 333x222 334x222
Neuf tuiles, trois largeurs différentes et deux hauteurs différentes, couvrant 667 667 pixels, soit exactement 1 001 fois 667.
Maintenant la version naïve du même travail. accompagner floor(1001 / 3) et floor(667 / 3), utilisez 333 par 222 pour chaque tuile et vous couvrez 999 par 666. Une bande de deux pixels de large et un pixel de hauteur ne sont jamais en mesure de faire partie de la tuile. C'est 2 333 pixels jetés en silence, et sur une photo, c'est le bord droit de l'image.
Mode grille ou taille de tuile fixe ?
Grille lorsque le nombre de pièces est important. Taille lorsque les dimensions de chaque pièce sont importantes.
| tu veux | mode | pourquoi |
|---|---|---|
| Neuf publications pour une grille de flux | Grille, 3 x 3 | Le décompte est l'exigence |
| Une affiche sur les feuilles A4 | Taille | La taille de la feuille est l'exigence |
| Une feuille de sprite découpée en cadres | Taille | La taille du cadre est fixe et connue |
| Un panorama dans un carrousel | Grille, 1 ligne | Le décompte est la longueur du carrousel |
Les deux modes sont en désaccord sur les restes, et c'est la vraie différence entre eux. Le mode Grille distribue le reste, de sorte que chaque tuile se trouve à moins d'un pixel de l'autre. Le mode taille vous donne exactement la taille que vous avez demandée et place le reste dans la dernière ligne et colonne.
Qu'arrive-t-il à la dernière ligne et colonne en mode taille ?
Ils sortent plus petits, et c'est délibéré.
La division d'une image de 1 000 x 800 en 300 par 300 carreaux donne une grille de 4 par 3. Douze tuiles, dont six ne sont pas de 300 par 300 :
r0c3 100x300 r1c3 100x300 r2c3 100x200
r2c0 300x200 r2c1 300x200 r2c2 300x200
Ceux-ci couvrent 800 000 pixels, exactement la source. L'alternative serait de recadrer l'image en un nombre entier de tuiles, ce qui signifie jeter tranquillement une bande de 100 pixels sur la droite et une bande de 200 pixels en bas. Un outil qui fait cela est de décider pour vous que le bord de votre image n'a pas d'importance.
Si vous voulez des vignettes égales, utilisez le mode Grille. Si vous voulez des tuiles d'une taille donnée et que l'image ne se divise pas par elle, les pièces de bord sous-dimensionnées sont la réponse honnête.
Pourquoi les fichiers sont-ils nommés R01-C01 ?
Pour qu'un tri par nom de gestionnaire de fichiers vous donne l'ordre de lecture, ce qu'il ne fera pas autrement.
Le tri est alphabétique, donc tile-10 sortes entre tile-1 et tile-2. Une grille de douze pièces répertoriée de cette façon se rassemble dans le mauvais ordre, et toute personne travaillant à partir des noms de fichiers place la rangée dix à laquelle appartient la ligne deux.
Les nombres sont bourrés de la largeur de l'index le plus grand, de sorte que le remplissage n'apparaît que lorsque cela est nécessaire :
3 x 3 grid shot-r3-c3.png
12 x 12 grid My-Holiday-Photo-r01-c01.png ... My-Holiday-Photo-r12-c12.png
Le nom d'origine est conservé, avec des espaces et tout ce qui n'est pas un caractère Word transformé en traits d'union, donc un fichier provenant d'un téléphone vous dit toujours ce que c'était.
PNG ou JPG pour les tuiles ?
PNG, sauf si les tuiles sont des photographies et que la taille totale est un problème.
Le fractionnement est sans perte en soi : les pixels d'une tuile sont les pixels de la source. Enregistrer comme PNG le maintient ainsi, car png est un format sans perte. Enregistrer en tant que JPG ré-encode chaque tuile, ce qui, sur une photo qui était déjà un JPEG, signifie une deuxième génération de perte.
Il y a une raison spécifique à la séparation de préférer la PNG, au-delà de la monnaie habituelle. JPEG comprime en blocs 8 par 8, et ses artefacts sont les plus forts sur les bords de ces blocs. Chaque limite de tuile est un nouvel arête dans un nouveau fichier, encodée sans connaissance de son voisin, de sorte que les tuiles JPEG peuvent montrer une faible discontinuité exactement le long des coutures que vous essayiez de rendre invisibles. PNG n'a pas un tel comportement.
JPG à la qualité 0,92 est ce que l'outil écrit lorsque vous le choisissez, ce qui est un paramètre raisonnable et toujours une deuxième génération. Pour neuf tuiles d'une photographie dirigée vers un flux social qui les recompressera de toute façon, c'est un commerce défendable. Pour tout ce qui est imprimé ou remonté, png.
Combien de tuiles pouvez-vous fabriquer ?
Quatre cents, qui est une grille de 20 par 20, et la limite concerne le navigateur plutôt que l'arithmétique.
Chaque tuile devient sa propre toile et son propre blob codé avant que quoi que ce soit soit zippé, donc quatre cents tuiles signifient quatre cents toiles et quatre cents encodages dans un seul onglet. Passé cela, l'encodage commence à caler la page plutôt que de terminer lentement.
21 x 21 -> That is 441 tiles. The limit is 400, which is a 20 by 20 grid.
Un deuxième chèque attrape l'autre extrémité. Vous ne pouvez pas couper une image en plusieurs parties qu'il n'y a de pixels le long de cet axe, donc demander 80 lignes à une image de 50 pixels de hauteur est refusé avec la taille réelle de l'image, plutôt que de produire 30 carreaux de hauteur nulle.
Une grille de neuf pièces s'alignera-t-elle sur Instagram ?
Les pièces seront justes. La question de savoir si l'illusion fonctionne est une question distincte avec deux parties.
Premièrement, la forme. Une grille d'alimentation est constituée de cellules carrées, de sorte qu'une source carrée Split 3 par 3 donne des tuiles carrées et tout correspond. Une photographie 4:3 partagée 3 par 3 donne des tuiles qui sont 4:3, et l'alimentation tronquera chaque fois un carré indépendamment, ce qui brise l'image. Recadrer ou ajuster la source d'un carré avant de le diviser, pas après.
Deuxièmement, la commande. Un flux remplit le plus récent en premier, en haut à gauche, en se déplaçant vers la droite. Ainsi, la tuile que vous voulez dans le coin supérieur gauche doit être la dernière affichée. L'ordre de publication est l'inverse de l'ordre de lecture : commencez par la tuile en bas à droite et terminez avec le haut à gauche. Les publier dans l'ordre dans lequel les fichiers sont numérotés met l'image à l'envers et à l'arrière.
Les coutures ne seront pas non plus invisibles, car la grille dessine un petit écart entre les vignettes. L'effet est une image vue à travers un cadre de fenêtre plutôt qu'une image continue, à quoi ressemble chaque publication de la grille et à quoi les gens attendent.
Quelle taille doit être la tuile pour l'impression sur les feuilles ?
Travaillez à l'envers à partir du papier et de la résolution de l'imprimante, et attendez-vous à ce que la somme soit supérieure à l'image que vous avez.
A4 est de 210 par 297 millimètres. À 300 points par pouce, ce qui est l'objectif habituel de quelque chose d'être examiné de près, soit 2 480 pixels par 3 508 pixels par feuille. Une affiche sur 3 par 3 de A4 veut donc une source de 7 440 x 10 524 pixels, soit 78 mégapixels. Une photo d'un téléphone récent est d'environ 12 h.
Ainsi, la version honnête de ce travail est généralement inférieure à 300 dpi, ou moins de feuilles, ou accepter que l'impression soit douce. À 150 dpi, le même 3 par 3 a besoin de 3 720 par 5 262, ce qui est à la portée d'un bon appareil photo. Le fractionnement ne peut pas ajouter de détails, il décide seulement où les coupes tombent.
Une chose à régler avant d'imprimer plutôt qu'après. Les imprimantes grand public ne peuvent pas imprimer sur le bord de la feuille, de sorte que chaque tuile arrive avec une marge blanche, et neuf feuilles collées ensemble montrent neuf bordures blanches à travers l'image. La réponse habituelle consiste à imprimer sans bordure si l'imprimante la prend en charge, ou à couper chaque feuille le long d'un bord et à les chevaucher. Cet outil coupe exactement, sans purge ni chevauchement, donc le chevauchement doit provenir de la source : divisez une grille légèrement plus grande et acceptez de perdre une bande, ou ajoutez-vous vous-même le saignement avant de vous diviser.
Le fractionnement perd-il de la qualité ?
La coupe ne le fait pas. L'économie pourrait être, et le redimensionnement que personne ne mentionne définitivement.
Chaque tuile est tirée de l'image source dans une toile de la taille exacte de la tuile, un pixel source vers un pixel de destination, sans mise à l'échelle. C'est une copie. Le test de hachage ci-dessus en est la preuve.
Là où la qualité va, c'est l'encodeur, couvert ci-dessus, et une chose en dehors de cet outil : partout où vous téléchargez les tuiles, elles les redimensionneront probablement. Une tuile 360 par 360 publiée sur un flux qui souhaite 1 080 par 1 080 sera augmentée par la plate-forme, et la mise à l'échelle invente les pixels. Si les tuiles sont destinées à un endroit avec une taille connue, divisez une source suffisamment grande pour que chaque tuile soit au moins de cette taille.
Pourquoi le téléchargement est-il disponible en tant que zip ?
Parce que neuf fichiers, ou quatre cents, ne sont pas quelque chose qu'un navigateur peut en remettre un à la fois sans se battre.
Une page déclenchant plusieurs téléchargements en séquence est bloquée par la plupart des navigateurs après le premier, ce qui est une protection raisonnable contre une page qui souhaite mettre vingt choses dans votre dossier de téléchargements. construire un entrain Dans la page et offrir un fichier est le contournement, et il conserve également les tuiles avec leurs noms intacts, ce qui est la partie qui compte pour le réassemblage.
L'archive est construite en mémoire, ce qui est une autre raison pour le plafond de quatre cents tuiles : l'onglet contient l'image source, la toile de chaque tuile, chaque blob codé et l'archive terminée en même temps.
Ce que le fractionnement ne fait pas
Il coupe un rectangle en une grille de rectangles. Il n'y a rien d'autre dedans.
Pas de chevauchement entre les vignettes, ce que certains flux de travail de mappage souhaitent. Pas de saignement ou de trait de trait pour l'impression. Pas de pièces non rectangulaires. Pas de recadrage automatique sur un carré avant la scission. Pas de remontage, ce qui est le travail opposé et appartient à La fusion d'images, couvert en son guide.
Si vous voulez un puzzle, une mosaïque ou des tuiles avec chevauchement, ce n'est pas cet outil, et l'écart vaut la peine d'être connu avant de commencer plutôt qu'après que neuf fichiers ne soient arrivés dans votre dossier de téléchargement.
Pourquoi cela s'exécute-t-il dans le navigateur ?
Parce que couper un rectangle d'une image est quelque chose Une toile fait nativement, et un serveur n'ajoute qu'une copie de votre image sur le disque de quelqu'un d'autre.
L'image est décodée dans l'onglet, chaque tuile est dessinée dans son propre canevas, chaque toile est codée avec toBlob, et la collection est zippée et remise. Rien n'est téléchargé et rien n'est stocké.
Les images que les gens divisent ne sont pas toujours une photo de vacances pour un flux. Ce sont des plans d'étage, des documents numérisés, des images médicales, des captures d'écran de systèmes internes, des œuvres d'art avant leur publication. Pour ceux-ci, l'alternative habituelle envoie l'ensemble de l'image à un service en échange d'une opération que votre propre machine effectue en une fraction de seconde.



