2017-08-30 3 views
1

J'ai un service qui prend une URL d'image FB en tant que param, vérifie que c'est une URL valide qui renvoie une image, puis renvoie l'URL si toutes les vérifications ont réussi. Je voudrais ajouter une étape pour redimensionner l'image si ces paramètres sont également transmis, puis renvoyer l'image redimensionnée via URL comme je l'ai fait auparavant. Mon expérience avec la manipulation d'image est minime pour dire le moins, mais ma compréhension jusqu'à présent est d'utiliser une bibliothèque comme sharp, redimensionner, enregistrer la nouvelle image quelque part, puis retourner la nouvelle URL à l'emplacement de l'image.Node redimensionner l'image avec l'URL sans enregistrer l'image

Cela semble être l'approche la plus logique. Mais, je me demande quelle serait la solution si je ne veux pas héberger ces images redimensionnées n'importe où. Y a-t-il un autre moyen, ou est-ce que ma compréhension antérieure est sur la bonne voie?

Exemple d'URL de facebook ressemblerait à: https://scontent.xx.fbcdn.net/v/t1.0-9/16473924_10154471006092746_6242863207915608429_n.jpg?oh=4d7fb8fb162c0ff036810ee2969703f0&oe=5A25EE1C.

+0

Il est illogique de redimensionner une image, de renvoyer l'image redimensionnée et de renvoyer une URL pour obtenir l'image. Lorsque l'URL est demandée, il vous suffira de créer à nouveau l'image pour pouvoir la renvoyer. Donc, je ne comprends absolument pas ce que vous demandez vraiment de l'aide. – jfriend00

+0

@ jfriend00 Merci pour le commentaire. Je pensais que ma révélation de mon expérience de manipulation d'images était suffisante, avec le fait que j'ai décrit ma solution logique, mais je me demandais s'il y avait quelque chose que je ne pouvais pas faire, étant donné mon expérience avec la manipulation d'images. Cela dit, pour être tout à fait clair, une réponse pourrait être soit a) Oui, votre compréhension précédente est sur la bonne voie car il n'y a pas d'autre alternative ou b) Essayez cette alternative. SO est un endroit génial pour converser et apprendre, et c'est ce que j'essaie de faire. Toutes mes excuses si vous pensez que c'est une question idiote. – jmcgui05

+0

Désolé, mais je ne comprends toujours pas ce que vous demandez. Si personne d'autre ne vient aider, c'est probablement parce qu'ils ne comprennent pas la question. J'espérais que vous éditiez la question pour clarifier davantage ce que vous demandez de l'aide. – jfriend00

Répondre

2

Basé sur le titre de questions:

nœud redimensionne l'image avec l'URL sans enregistrer l'image

Je pense que vous essayez de manipuler une image basée sur une demande à votre « service », puis le renvoyer post-traités sans avoir à stocker et utiliser l'espace disque ...

[JIMP] fetch, redimensionner et retourner une image sans enregistrer sur le disque:

Cet exemple en demandant la racine du serveur '/', il récupère une image, la redimensionne et la renvoie en tant que réponse sans avoir à la stocker sur le disque.

const imgURL = "https://ichef.bbci.co.uk/news/660/cpsprodpb/37B5/production/_89716241_thinkstockphotos-523060154.jpg"; 
const express = require('express'); const app = express() 
var Jimp = require("jimp") 
app.get('/',function(req, res){ 
    Jimp.read(imgURL, function(err,img){ 
    if (err) throw err; 
    img.resize(32, 32).getBase64(Jimp.AUTO , function(e,img64){ 
     if(e)throw e 
     res.send('<img src="'+img64+'">') 
    }); 
    }); 
}); 
app.listen(3000);