在下面的代码示例中,我将Image像素Alpha值设置为70但是当我再次提取它时,我得到255.我是错误地提取错误还是设置错误?我缺少什么或不理解。
public void createImage()
{
BufferedImage img = new BufferedImage(2, 2,
BufferedImage.TYPE_INT_RGB);
//Set Pixel
int red = 50;
int green = 10;
int blue = 100;
int alpha = 70;
int col = (alpha << 24) | (red << 16) | (green << 8) | blue;
img.setRGB(0, 0, col); //Set pixel 0,0
//Read Pixel
int colint = img.getRGB(0, 0); //Get pixel 0,0
Color newCol = new Color(colint,true);
int alphaToPrint = newCol.getAlpha();
int redToPrint = newCol.getRed();
int greenToPrint = newCol.getGreen();
int blueToPrint = newCol.getBlue();
System.out.println("redToPrint :" +String.valueOf(redToPrint));
System.out.println("greenToPrint :" +String.valueOf(greenToPrint));
System.out.println("blueToPrint :" +String.valueOf(blueToPrint));
System.out.println("alphaToPrint :" +String.valueOf(alphaToPrint));
}
运行代码时的结果:
我期望在读取alpha值时得到70:
int alphaToPrint = newCol.getAlpha();
请帮忙。
答案 0 :(得分:3)
您的<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.elyeproj.phoneinfo.MainActivity">
<TextView
android:id="@+id/resolution_width"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/resolution_height"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/resolution_width_dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/resolution_height_dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/resolution_density"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/resolution_density_str"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/phone_os"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="match_parent"
android:layout_height="10dp" />
<Button
android:layout_width="match_parent"
android:layout_height="20dp" />
<Button
android:layout_width="match_parent"
android:layout_height="30dp" />
<Button
android:layout_width="match_parent"
android:layout_height="40dp" />
<Button
android:layout_width="match_parent"
android:layout_height="50dp" />
<ImageView
android:layout_width="match_parent"
android:layout_height="10dp"
android:layout_marginBottom="5dp"
android:background="@android:color/holo_blue_dark"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginBottom="5dp"
android:background="@android:color/holo_blue_dark"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginBottom="5dp"
android:background="@android:color/holo_blue_dark"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginBottom="5dp"
android:background="@android:color/holo_blue_dark"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@android:color/holo_blue_dark"/>
</LinearLayout>
没有Alpha通道(BufferedImage
)
改为使用TYPE_INT_RGB
(注意'A')