From mdsumner at gmail.com  Thu Feb 10 07:54:06 2011
From: mdsumner at gmail.com (Michael Sumner)
Date: Thu, 10 Feb 2011 17:54:06 +1100
Subject: [Rd] using rasterImage within image
In-Reply-To: <AANLkTi=nwF-3UjtoFAaLdTwphmezvuk57HaaJd57=am2@mail.gmail.com>
References: <4D51F2A7.8010505@mcmaster.ca>
	<D8F5413E-025A-4511-BCE1-7ED06CBE99A0@r-project.org>
	<4D52AD7B.6070402@gmail.com>
	<E86B0A90-F63F-4537-A7FB-1AA84D685154@r-project.org>
	<AANLkTi=yRP56wACtOs+Ouc70EV57rw9RKYmfLAh2hQ8a@mail.gmail.com>
	<825F0B1E-EF80-48F5-AFF1-5832092450AB@r-project.org>
	<AANLkTi=0K6hCP0tptSf6h4S6au+-SmahDm983zRdZEgb@mail.gmail.com>
	<4D531558.7010709@gmail.com>
	<AANLkTi=nwF-3UjtoFAaLdTwphmezvuk57HaaJd57=am2@mail.gmail.com>
Message-ID: <AANLkTimHAmzq4CEJF-auHRSA8745x2yb8r_GK9+vTrKJ@mail.gmail.com>

Hello, I'm afraid the SDI graphics issue is still a problem in 2.13.0
2011-02-09 r54308.

To reproduce, in a fresh R session (Windows in SDI mode):

## create a dummy dataset
m<- matrix(c(0.2, 0.4, 0.6, 0.8), 2, 2)

## simple helper function to open the windows() device and plot the matrix
draw.f<- function(x) {
   plot(0, xlim = c(0, 1), ylim = c(0, 1))
   rasterImage(x, 0, 0, 1, 1, interpolate = FALSE)
}

draw.f(m)

## repeat the following 2 lines five times:

dev.off()
draw.f(m)

On the fifth attempt, only the background plot appears - but the
raster is visible on resize of the windows() device.

Cheers, Mike.

sessionInfo()
R version 2.13.0 Under development (unstable) (2011-02-09 r54308)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base



On Thu, Feb 10, 2011 at 5:31 PM, baptiste auguie
<baptiste.auguie at googlemail.com> wrote:
> Dear all,
>
> Back when grid.raster() was introduced, it was suggested that perhaps
> grid.rect() could use grid.raster() in case of even spacing. The
> response at the time was that it would be best to keep the two
> functions separate at a lower level, that is grid.rect() and
> grid.raster(), but perhaps a new function grid.image() could be
> proposed at a higher level with the two possible backends. If this is
> done in grid graphics, perhaps the same convention could be used for
> base graphics: image() would be high level with the backend option,
> and a new function ("tiles()", perhaps?) would implement the current
> behavior of image().
>
> In any case, it would be nice to have a unified scheme to switch
> between "tiles" and raster; currently lattice (panl.levelplot.raster)
> and a few other packages all do it separately.
>
> Best wishes,
>
> baptiste
>
>
>
> On 9 February 2011 23:29, Ben Bolker <bbolker at gmail.com> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> On 11-02-09 03:09 PM, Henrik Bengtsson wrote:
>>> On Wed, Feb 9, 2011 at 11:53 AM, Simon Urbanek
>>> <simon.urbanek at r-project.org> wrote:
>>>>
>>>> On Feb 9, 2011, at 2:36 PM, Henrik Bengtsson wrote:
>>>>
>>>>> On Wed, Feb 9, 2011 at 11:25 AM, Simon Urbanek
>>>>> <simon.urbanek at r-project.org> wrote:
>>>>>> Ben,
>>>>>>
>>>>>> I have committed something analogous to R-devel (your rotation
>>>>>> code was not unlike mine, I replicated the color handling from
>>>>>> R internals to be consistent, I fixed the drawing limits and
>>>>>> added a check for x/y conformance). Note that useRaster can
>>>>>> only be used when x, y form a regular grid. Although I tried a
>>>>>> lot of corner cases (requiring quite a few fixes), I'm sure I
>>>>>> did not test all of them, so volunteers please give it a go and
>>>>>> compare it with non-raster output.
>>>>>>
>>>>>> The only thing I'm not quite happy about is the argument name:
>>>>>> useRaster. Personally, I hate camel case in R (it has crept in
>>>>>> more recently making it horribly inconsistent) so please feel
>>>>>> free to suggest a better name ;).
>>>>>
>>>>> It.is.spelled.camelCase.
>>>>>
>>>>
>>>> Fortunately not in English ;)
>>>>
>>>>
>>>>> What about style=c("image", "raster")? ?This allows for future
>>>>> extensions too.
>>>>>
>>>>
>>>> Hmm.. it's not really a "style" - the output doesn't change
>>>> (ideally) - it's more of a back-end specification .. also we
>>>> already have oldstyle argument in image() adding to the confusion
>>>> ...
>>>
>>> flavor=c("image", "raster") renderer=c("image", "raster")
>>> backend=c("image", "raster") ...
>>
>> ?Thanks Simon! (Any reports on the SDI Windows raster rendering issue,
>> or do we need a warning/workaround there?)
>>
>> ?I like "backend", or possibly "method"
>>
>> ?One minor consideration: if "raster" eventually becomes the default
>> (as I hope it will), there would need to be some internal logic that
>> drops back to "image" if the user specifies uneven spacing and doesn't
>> explicitly specify the 'backend/method' parameter ...
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iEYEARECAAYFAk1TFVcACgkQc5UpGjwzenOa6ACfVnJq67cG0czATeyti7AxgUbw
>> ZWwAniA7JuYCv4clq8e6jwWQuMvw/r+m
>> =/da6
>> -----END PGP SIGNATURE-----
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Michael Sumner
Institute for Marine and Antarctic Studies, University of Tasmania
Hobart, Australia
e-mail: mdsumner at gmail.com



[Rd] using rasterImage within image
Michael Sumner