我刚刚为我的项目http://i.imgur.com/9FLj6Uk.png创建了一些像素艺术品。我想在我的网站上使用它。正如你所看到的,它是小像素艺术。我希望将一个像素绘制为2 * 2像素而不是1 * 1像素。我会用2 * 2像素而不是一个像素重绘图片,但这似乎是不好的解决方案。
我尝试使用CSS
img.pixel {
width: 32px;
height: 32px
}
但这不起作用,它在浏览器中显示出奇怪的色调。我想看看硬像素。有谁知道这个问题的任何解决方案?
当我使用上面的CSS
时,这就是问题所在答案 0 :(得分:3)
在浏览器中,像素艺术很难实现,这主要是因为缺乏对像素化和#34;或者"脆边"图像渲染。它应该是supported in CSS4。
目前CSS堆栈看起来像这样,虽然看起来好像Chrome 30和Opera 16已经破坏了对CSS解决方案的支持
image-rendering:optimizeSpeed;
image-rendering:-moz-crisp-edges;
image-rendering:-o-crisp-edges;
image-rendering:optimize-contrast;
image-rendering:-webkit-optimize-contrast;
-ms-interpolation-mode: nearest-neighbor;
@Phrogz查看this answer,test case。另请参阅有关该主题的mozilla's documentation。对于现在的普遍支持,JS解决方案可能必须暂时工作,例如在文章drawing pixels is hard上看到的那样:
var resize = function( img, scale ) {
// Takes an image and a scaling factor and returns the scaled image
// The original image is drawn into an offscreen canvas of the same size
// and copied, pixel by pixel into another offscreen canvas with the
// new size.
var widthScaled = img.width * scale;
var heightScaled = img.height * scale;
var orig = document.createElement('canvas');
orig.width = img.width;
orig.height = img.height;
var origCtx = orig.getContext('2d');
origCtx.drawImage(img, 0, 0);
var origPixels = origCtx.getImageData(0, 0, img.width, img.height);
var scaled = document.createElement('canvas');
scaled.width = widthScaled;
scaled.height = heightScaled;
var scaledCtx = scaled.getContext('2d');
var scaledPixels = scaledCtx.getImageData( 0, 0, widthScaled, heightScaled );
for( var y = 0; y < heightScaled; y++ ) {
for( var x = 0; x < widthScaled; x++ ) {
var index = (Math.floor(y / scale) * img.width + Math.floor(x / scale)) * 4;
var indexScaled = (y * widthScaled + x) * 4;
scaledPixels.data[ indexScaled ] = origPixels.data[ index ];
scaledPixels.data[ indexScaled+1 ] = origPixels.data[ index+1 ];
scaledPixels.data[ indexScaled+2 ] = origPixels.data[ index+2 ];
scaledPixels.data[ indexScaled+3 ] = origPixels.data[ index+3 ];
}
}
scaledCtx.putImageData( scaledPixels, 0, 0 );
return scaled;
}
阅读文章,视网膜显示和移动野生动物园的存在可能会增加额外的复杂性,以呈现正确尺寸的像素艺术。虽然使用iOS7的移动游猎可能会有所纠正。
答案 1 :(得分:1)
我建议您使用svg
图片,因为它可以扩展并为您提供所需内容。
您可以从以下链接中了解有关相同内容的更多信息。
https://developer.mozilla.org/en/docs/SVG_In_HTML_Introduction
希望这有帮助。
答案 2 :(得分:-4)
<img src="http://i.imgur.com/9FLj6Uk.png width="32" height="32">