このページの記事一覧
● 2014年3月2日日曜日 - [Android] ADB接続とUSB接続モード
● 2014年2月23日日曜日 - [Blogger] 「このブログは Blogger の利用規約に違反しているため…」への対応
● 2013年11月4日月曜日 - [Android] GridView で列数を固定する。
● 2013年10月27日日曜日 - NEC MEDIAS X N-07D の ADB Interface を使う
● 2013年10月20日日曜日 - [どうぶつしょうぎ] 相腰掛ゾウ基本定跡 23手目 ▲C4ライオン の変化
● 2013年9月29日日曜日 - [Java] Java Image は透過色をサポートしていない?
● 2013年9月2日月曜日 - [Java] Image の拡大

2014年3月2日日曜日

[Android] ADB接続とUSB接続モード


Android デバイスを ADB 接続する時には、USB の接続モードによっては認識されないことがある。 ひとハマリしたのでメモ。

手元のデバイスでの結果は、
  • Nexus7 では MTP を無効にする
  • Medias N07D では カードリーダーモードにする
ことで、ADB接続ができる。

2014年2月23日日曜日

[Blogger] 「このブログは Blogger の利用規約に違反しているため…」への対応


突然、自分のブログが表示されなくなった。

このブログは Blogger の利用規約に違反しているため、現在は投稿者のみが表示可能です。

最近、ブログを更新していなかったし、もちろん、利用規約に違反するような内容は 記載していないつもりだったので意味が分からない。

幸い、すぐに解除できたので今回はその記録。

2013年11月4日月曜日

[Android] GridView で列数を固定する。

GridView は列数を numColumns で指定すると、 GridView の横幅に応じて セルの幅を自動的に決めてくれる。

しかし、縦幅はセルに指定したアイテムの縦幅が採用されるので、 行数も固定して GridView を綺麗に固定するには GridView のサイズに応じて、アイテムの縦幅を調整する必要がある。

2013年10月27日日曜日

NEC MEDIAS X N-07D の ADB Interface を使う

NEC の MEDIAS N-07D を ADB 接続しようとしたのだが公式ドライバではうまくいかなかったのでメモ。

NECカシオモバイルコミュニケーションズ の公式ダウンロードページから ドライバをダウンロードしてインストールした。
しかし、正常にデバイスとして認識されない。 USB Storage デバイスとしては見えているのだが、ADB デバイスとしては機能していない。

公式ドライバの使用を断念し、Android SDK に入っているドライバを使用して解決。
以下、そのメモ。

2013年10月20日日曜日

[どうぶつしょうぎ] 相腰掛ゾウ基本定跡 23手目 ▲C4ライオン の変化


図1は、相腰掛ゾウ基本定跡(相ゾウ冠基本定跡)で 22手目に後手が △A3ゾウ とした局面。
本筋では先手は ▲A4ライオン として、以下△C1ライオン、▲C4キリン、△B2ゾウ と進む。

今回は、23手目に先手が ▲A4ライオン に替えて ▲C4 ライオンとしてきた場合の変化を見てみる。
先手の狙いは ▲A4ヒヨコ打。後手は A3 のゾウの捌き方が焦点になる。

棋譜はこちら → 棋譜
図1 △A3ゾウ打 まで

2013年9月29日日曜日

[Java] Java Image は透過色をサポートしていない?

Java7 の ImageIO は PNG の透過色指定をサポートしていないらしい。

package kuro.misc.image;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class TransparentColor {
  private static String FILE_IN = "C:/work/temp/test.png";
  private static String FILE_OUT = "C:/work/temp/test-out.png";

  public static void main(String[] args) throws IOException {
    BufferedImage image = ImageIO.read(new File(FILE_IN));
    ImageIO.write(image, "PNG", new File(FILE_OUT));
  }
}

こんな感じのコードを書いて、透過色指定をした「test.png」を読み込ませると、 出力される「test-out.png」は透過色指定がなくなってしまう。

 BufferedImage image = ImageIO.read(new File(FILE_IN));
System.out.println(
    "Image transparency = " + image.getTransparency());
-----------
Image transparency = 1

getTransparency の出力値の意味は以下の通り。
package java.awt;

public abstract interface Transparency
{
  public static final int OPAQUE = 1;
  public static final int BITMASK = 2;
  public static final int TRANSLUCENT = 3;

  public abstract int getTransparency();
}

読み込んだ時点で 透過情報のあるImageだとは扱われていない模様。

2013年9月2日月曜日

[Java] Image の拡大

Image を拡大して PNG に保存する方法。
PNGに保存するには ImageIO.wtite を使いたいので、 BufferedImage にしておく必要がある。


Image の拡大


いろいろ方法はありそうだが、一番簡単そうなのは java.awt.Image#getScaledInstance を使う方法。
  private static Image magnifyImage(Image img, int scale) {
    int width = img.getWidth();
    int height = img.getHeight();
    Image scaledImage = img.getScaledInstance(
        width * scale, height*scale, Image.SCALE_DEFAULT);
    return scaledImage;
  }


Image から BufferedImage に変換する方法


Image#getScaledInstance を使うと、拡大したイメージは、 java.awt.Image になってしまうので、 ImageIO.write を使うためには、 java.awt.image.BufferedImage に変換する必要がある。
  private static BufferedImage convertImageToBufferedImage(Image img) {
    BufferedImage bimg = new BufferedImage(
        img.getWidth(null), img.getHeight(null),
        BufferedImage.TYPE_INT_ARGB);
    Graphics g = bimg.getGraphics();
    g.drawImage(img, 0, 0, null);
    g.dispose();
    return bimg;
  }

すでに大きさが確定しているイメージを使うので Image.getWidth で Observer を指定する必要はない。


この方法の難点は透過情報(アルファチャンネル)を失ってしまうことだが、 今回は アルファ情報はいらないのでこれで良しとする。