Estoy de acuerdo en the method from Jon Hanna: Hacer de análisis la Base64code luego cargarla a Imagen GD antes de volver a muestrear. Sin embargo, recuperarlo como datos no es tan fácil como creía. En php en GAE, necesitará enable output buffering configurando output_buffering = "On"
en el archivo php.ini.
Aquí explico el paso en detalle.
Este documento se toma como referencia para crear una imagen Recursos mediante el análisis de Base64code: http://php.net/manual/en/function.imagecreatefromstring.php
// Create image resource from Base64code
$data64 = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$image = imagecreatefromstring(base64_decode($data64));
Este es un recurso de imagen que se puede poner directamente a la Resample función: http://php.net/manual/en/function.imagecopyresampled.php
// Resample
$image_p = imagecreatetruecolor($new_w, $new_h);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_w, $new_h, $org_w, $org_h);
El resultado es también un recurso de imagen. Para obtenerlo como datos, necesitamos Buffering.
Ver how to create a base64encoded string from image resource
// Buffering
ob_start();
imagepng($image_p);
$data = ob_get_contents();
ob_end_clean();
Usando doc continuación me puse un cubo GCS en my project como un sitio web de modo que pueda tienda & Display directamente: https://cloud.google.com/storage/docs/website-configuration#tips
//Store & Display
$context = stream_context_create([
'gs' =>[
'acl'=> 'public-read',
'Content-Type' => 'image/jpeg',
'enable_cache' => true,
'enable_optimistic_cache' => true,
'read_cache_expiry_seconds' => 300,
]
]);
file_put_contents("gs://mybucket/resample/image.jpeg", $data, false, $context);
header("Location: http://mybucket/resample/image.jpeg");
así no tengo ni contra escritura derechos en mi servidor, ¿cómo podría vincular estos pulgares a mi aplicación node.js? ¿alguna idea? –
Eso cae bajo el "No tengo idea de cómo hacer eso (o bueno, cualquier cosa) en node.js" un poco más arriba para mí, me temo. Alguien más podría tener una buena idea, con suerte. –
buscando una respuesta para esto durante 2 días ... normalmente funcionaría bien con el nodo, pero en mi aplicación de nodo no tengo derechos de escritura, también ... eso apesta –