2013-02-20 3 views
1

Я создал растровое изображение в drracket, и я хотел бы сохранить его как .bmp на моем жестком диске.Как я могу сохранить .bmp в ракетке?

#lang racket 
(require racket/draw) 

(define test-bitmap 
    (let* ((target (make-bitmap 60 30)) 
     (dc (new bitmap-dc% [bitmap target]))) 
    (send dc set-font (make-font #:size 14 #:family 'roman 
           #:weight 'bold)) 
    (send dc set-text-foreground "blue") 
    (send dc draw-text "test" 5 1) 
    target)) 

(send test-bitmap save-file "test.bmp" 'bmp) 

Когда я запускаю этот код, drracket сообщает, что «копи-файл в растровом%: вид экономии еще не реализован:«BMP»Если я использую 'PNG как вид в сообщении копи-файла, файл сохраняется правильно (хотя со значительными визуальными артефактами).

documentation for bitmap% перечисляет bmp как действительный вид для этой операции.

Действительно ли это не реализовано, или я делаю глупую ошибку?

+0

Какие «значительные визуальные артефакты»? Если это клетчатый фон, это потому, что вы не установили цвет фона, и некоторые программы будут отображать шашки для обозначения прозрачного фона. –

+0

Фактическое изображение, которое я пытаюсь сохранить, представляет собой сетку текста различных цветов на белом фоне, и во многих случаях есть зеленоватые очертания текста. –

+1

Нечетный! Можете ли вы поставить пример кода для изучения людей? При сохранении в '.png' не должно быть никаких визуальных артефактов. – dyoo

ответ

2

В настоящее время файлы BMP можно загружать, а не сохранять. См. racket/draw/private/bitmap.rkt для более подробной информации.

Да, это делает ошибочным документацию для save-file. Я действительно ничего не заметил в исходном коде, который предположил бы, что save-file фактически поддерживает bmp.

+0

Спасибо за ссылку. Полагаю, я могу жить с png. –

Смежные вопросы