at_yasu's blog

ロード的なことを

画像をHTMLのテーブルで表示

はてなはいくで書いた事だけど、画像ファイルをHTMLに変換するプログラム。

dmgとかで公開するのも面倒なので、メソッドだけ公開。

- (NSString*) image2yaml:(NSImage*)img
{
	NSBitmapImageRep* rep        = [[NSBitmapImageRep alloc] initWithData:[img TIFFRepresentation]];
	unsigned char*    bitmapData = [rep bitmapData];
	NSMutableString*  str        = [[NSMutableString alloc] initWithCapacity:1];
	long              wide       = [rep pixelsWide];
	long              high       = [rep pixelsHigh];
	long              i          = 0;
	long              j          = 0;
	long              ptr        = 0;
	
	NSLog(@"");
	
	[str appendFormat:@"<table style=\"border:0px #000 solid; width:%f px; height:%f px\">",
	 [rep size].width, [rep size].height];
	
	for (i = 0; i < high; i++)
	{
		[str appendString:@"<tr style=\"height:0px; border:0px #000 solid;\">"];
		
		for (j = 0; j < wide; j++)
		{
			// CMYKとかグレースケールとかあるけど、そんなの無視。(をぃ
			ptr = 3 * sizeof(char) * (i * wide + j);
			[str appendFormat:@"<td style=\"background-color:#%02X%02X%02X;padding:1px; width:0px; border:0px #000 solid;\"></td>",
			 *(bitmapData + ptr),
			 *(bitmapData + ptr + sizeof(char)*1),
			 *(bitmapData + ptr + sizeof(char)*2)];
		}
		[str appendString:@"</tr>"];
	}

	[str appendString:@"</table>"];
	
	return [str autorelease];
}


ちなみに、現在web版をヘタレながら製作中。python、久しぶりに感じるなぁ。

追記:NSString型を返すようにちょい変更。