Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Low-level `cairo_image_surface_create` error on failed `make-bitmap`

Aperta
#61 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla

Direzione di ricerca

Inizia riproducendo l'esempio make-bitmap e l'esempio 2htdp/image save-image con le dimensioni eccessive segnalate. Traccia quindi il modo in cui l'errore di basso livello cairo_image_surface_create raggiunge questi punti di ingresso, poi definisci e verifica un errore più chiaro a livello di dominio per le immagini troppo grandi per essere renderizzate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Hi,

On my Apple M1 Max running 14.3 Sonoma, an overly-large bitmap surfaces a fairly low-level error

#lang racket
(require racket/draw)

(make-bitmap 2147483648 1)
------------------------------------------------------
Welcome to DrRacket, version 9.1 [cs].
Language: racket, with test coverage [custom]; memory limit: 256 MB.
. . cairo_image_surface_create: given value does not fit primitive C type
  C type: _int32
  value: 2147483648
> 

I don't know what the better thing to do is, but this peeks out through the htdp lang image library, and I would think that there we'd want to have a nicer domain-level error message. For instance:

#lang htdp/isl+
(require 2htdp/image)

(save-image
 (rectangle 2147483648 1 "solid" "black")
 "huge.png")

maybe something like "image is too large to render"?

Lingua principale
Racket
Stelle
19
Fork
24
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di racket/draw

Tutte le issue di racket/draw

Issue simili

Altre issue su Computer Graphics

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.