sharp icon indicating copy to clipboard operation
sharp copied to clipboard

sharp not working in my AWS EC2

Open Anjan-99 opened this issue 1 year ago • 4 comments

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_${user_id}.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; };

Anjan-99 avatar Sep 06 '24 10:09 Anjan-99

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.

lovell avatar Sep 06 '24 11:09 lovell

means ? you want access ?

Anjan-99 avatar Sep 06 '24 11:09 Anjan-99

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.

ghostlol avatar Sep 13 '24 05:09 ghostlol

@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.

lovell avatar Sep 23 '24 19:09 lovell

Closing due to inactivity but please feel free to reopen with the requested details if further help is required.

lovell avatar Oct 29 '24 09:10 lovell