[OpenJDK 2D-Dev] Review Request for bug (JDK-8080287): The image of BufferedImage.TYPE_INT_ARGB and BufferedImage.TYPE_INT_ARGB_PRE is blank
prasanta sadhukhan
prasanta.sadhukhan at oracle.com
Wed Jun 24 06:30:45 UTC 2015
Hi Jim,All
I have modified the code following your comments. Please find the
modified webrev:
http://cr.openjdk.java.net/~psadhukhan/8080287/webrev.02/
Could you please review this?
Regards
Prasanta
On 6/23/2015 2:03 AM, Jim Graham wrote:
> In reading through this I notice that at line 349 the filter code can
> permanently change the nature of the RescaleOp. It should use a local
> copy of the length field if it is going to reinterpret it on the fly
> like that.
>
> Also, at line 348 - shouldn't it do something if length > numBands,
> but the source does not have alpha? Or is this due to the fragile
> tests for "length == numBands+1" below which use that to determine if
> some special processing should be done for alpha? The handling of the
> relationship between length, numBands and alpha in general seems to be
> very fragile and full of assumptions about how the setup code managed
> those values without any code comments saying "we leave these
> variables in this relationship to indicate that we need to do X, Y, or
> Z". I'd prefer various conditions to be reflected in appropriate
> boolean variables that are reasonably descriptive rather than
> undocumented assumptions about how length relates to numBands. Also,
> numBands should probably be renamed to numColorBands to avoid any
> issues such as what Andrew noted below.
>
> The test at line 397 seems backwards. Shouldn't it be "(numBands+1 ==
> length)"? What exactly is it testing? It looks like it is deciding
> if it should eliminate alpha from the scaling loops since "length==1"
> is defined to only modify the colors, but then it subsets the color
> bands which means if you supply only one scale then you scale all but
> the alpha band and also all but one of the color bands. Or am I
> misreading something?
>
> ...jim
>
> On 6/22/2015 2:58 AM, Andrew Brygin wrote:
>> Hello Prasanta,
>>
>> I have couple comments regarding the fix.
>>
>> * lines 408 - 420 and lines 438 - 444.
>> Here you are obtaining the source and destination rasters for all
>> bands (colors + alpha).
>> However, it is already done on the lines 391 and 392.
>> Could you please clarify a purpose of this change?
>>
>> * line 399: here 'numBands' represents number of color bands in the
>> source image (see line 329).
>> So, the last color band is excluded from processing (for example, in
>> RGB image you get raster
>> that contain only R and G bands).
>>
>> * you have created a manual test. Probably an automated test is a bit
>> more
>> convenient option here.
>> Also, there seems to be no need for a jpg image for this test. A
>> source image
>> with color strips is much more useful.
>>
>> Thanks,
>> Andrew
>>
>> On 6/22/2015 12:36 PM, prasanta sadhukhan wrote:
>>> Hi ,
>>>
>>> Please review a fix for this issue:
>>> It was found that RescaleOp on image with different alpha cannot
>>> render the image as there is a particular flaw in RescaleOp
>>> implementation whereby the source alpha channel is never
>>> transferred to the destination if the rescale op is performed in java
>>> (or is never populated, if source image has no alpha channel),
>>> resulting in fully transparent destination image.
>>> Fix is to make sure the unscaled source alpha is transferred to
>>> destination alpha channel.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8080287
>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8080287/webrev.00/
>>>
>>> Regards
>>> Prasanta
>>
More information about the 2d-dev
mailing list