@@ -277,14 +277,13 @@ async function renderUrlToImageAsync(browser, pageConfig, url, path) {
277
277
}
278
278
await page . screenshot ( {
279
279
path,
280
- type : pageConfig . imageFormat ,
280
+ type : 'png' , // Always use PNG for screenshot
281
281
captureBeyondViewport : false ,
282
282
clip : {
283
283
x : 0 ,
284
284
y : 0 ,
285
285
...size
286
- } ,
287
- ...( pageConfig . imageFormat == "jpeg" ) && { quality : 100 }
286
+ }
288
287
} ) ;
289
288
} catch ( e ) {
290
289
console . error ( "Failed to render" , e ) ;
@@ -301,7 +300,7 @@ function convertImageToKindleCompatiblePngAsync(
301
300
outputPath
302
301
) {
303
302
return new Promise ( ( resolve , reject ) => {
304
- gm ( inputPath )
303
+ let gmInstance = gm ( inputPath )
305
304
. options ( {
306
305
imageMagick : config . useImageMagick === true
307
306
} )
@@ -312,14 +311,19 @@ function convertImageToKindleCompatiblePngAsync(
312
311
. rotate ( "white" , pageConfig . rotation )
313
312
. type ( pageConfig . colorMode )
314
313
. level ( pageConfig . blackLevel , pageConfig . whiteLevel )
315
- . bitdepth ( pageConfig . grayscaleDepth )
316
- . quality ( 100 )
317
- . write ( outputPath , ( err ) => {
318
- if ( err ) {
319
- reject ( err ) ;
320
- } else {
321
- resolve ( ) ;
322
- }
323
- } ) ;
314
+ . bitdepth ( pageConfig . grayscaleDepth ) ;
315
+
316
+ // For BMP format, we don't set quality since it's not applicable
317
+ if ( pageConfig . imageFormat !== 'bmp' ) {
318
+ gmInstance = gmInstance . quality ( 100 ) ;
319
+ }
320
+
321
+ gmInstance . write ( outputPath , ( err ) => {
322
+ if ( err ) {
323
+ reject ( err ) ;
324
+ } else {
325
+ resolve ( ) ;
326
+ }
327
+ } ) ;
324
328
} ) ;
325
329
}
0 commit comments