lovell / sharp

High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library.
https://sharp.pixelplumbing.com
Apache License 2.0
28.99k stars 1.29k forks source link

sharp not working in my AWS EC2 #4212

Open Anjan-99 opened 3 weeks ago

Anjan-99 commented 3 weeks ago

this function working proper in my windows laptop but when I upload it to ec2 this below line is not working or giving any error

ticket .composite([ticketIdBuffer, customerNameBuffer, barcodeBuffer]) .toFile(outputFilePath);

// full function const createTicket = async (user_id, name, orderid, event_id, barcodePath) => { // const eventId = event_id.replace(/[^a-zA-Z0-9]/g, ""); const customerName = name; const orderId = orderid; console.log("customerName", user_id, name, orderid, event_id, barcodePath);

const event = await Event.findOne({ event_id });

const passtemplate = event.pass_template; const barcode = await Jimp.read(barcodePath); barcode.resize(196 2, 236 2); console.log("passtemplate", passtemplate); console.log("barcode", barcode);

const nameTop = event.name_top; const nameLeft = event.name_left; const nameColor = event.name_color; const nameSize = event.name_size; const barcodeTop = event.barcode_top; const barcodeLeft = event.barcode_left; const ticketTop = event.ticket_top; const ticketLeft = event.ticket_left; const ticketColor = event.ticket_color; const ticketSize = event.ticket_size;

const ticket = sharp(passtemplate);

const ticketIdSvg = await generateSvg1( orderId, ticketSize, ticketColor, "font/OpenSans-ExtraBold.ttf" );

const customerNameSvg = await generateSvg1( customerName, nameSize, nameColor, "font/OpenSans-ExtraBold.ttf" );

const barcodeBuffer = { input: Buffer.from(await barcode.getBufferAsync(Jimp.MIME_PNG)), left: barcodeLeft, top: barcodeTop, };

const ticketIdBuffer = { input: Buffer.from(ticketIdSvg), left: ticketLeft, top: ticketTop, };

const customerNameBuffer = { input: Buffer.from(customerNameSvg), left: nameLeft, top: nameTop, };

// if pass already exists, delete it first before saving new one if (fs.existsSync(media/userpass/pass_${userid}.png)) { fs.unlinkSync(media/userpass/pass${user_id}.png); }

const outputFilePath = path.join("media/userpass", pass_${user_id}.png); console.log("outputFilePath", outputFilePath);

const pass = await ticket .composite([ticketIdBuffer, customerNameBuffer, barcodeBuffer]) .toFile(outputFilePath);

console.log("ticket generated",pass); return pass_${user_id}.png; };

lovell commented 3 weeks ago

Please create a minimal, standalone repo with the simplest possible code and image(s), and without any other dependencies, that allows someone else to reproduce.

Anjan-99 commented 3 weeks ago

means ? you want access ?

ghostlol commented 2 weeks ago

Please clarify your question. Simply pasting code won't help anyone. If the code is working on your local machine, it should work on the EC2 instance as well. Ensure that the necessary libraries are properly installed on the EC2 machine.

lovell commented 1 week ago

@Anjan-99 Were you able to make any progress with this? If you still require help, please create a minimal, standalone repo with the simplest possible code and image(s), and without any other dependencies, that allows someone else to reproduce.