可以使用Itext生成PDF文档,其中包含分辨率为150 dpi的imgages.
(似乎Itext正在将图像质量降低到72 dpi.)
谢谢
这是一个.png图像(在右侧),以及我绘制图像的画布元素(在左侧).你能注意到质量差异吗?Canvas使图像质量明显下降.我们能做什么?
我在Chrome和IE9上观察到了这个结果.其他人可能会做同样的事情.我如何渲染图像是很常见的:在脚本中我创建一个新Image()对象,在它加载后我调用
context.drawImage(myimage, x, y);

编辑:
这是我在画布上观察到的初始图像:

这是我写完后画布渲染的内容:
context.drawImage(myimage,parseInt(x),parseInt(y));

我能说什么,很棒的答案.最好的喷射.这顶帽子给你了.
EDIT2:
我试过了context.drawImage(myimage, parseInt(x) + 0.5, parseInt(y)+ 0.5);,结果如下:

我认为它比第一个更糟糕.我在Chrome上观察到这一点,在IE9上它有点像坏一样.
我正在使用PChart创建线性图表.除了绘制的实际线条的质量外,一切顺利.
当然,抗锯齿功能没有关闭,甚至没有明确打开.
这是一个实际图像的例子,看起来非常丑陋所有这些步骤.
有没有办法让线条更平滑,没有踩踏?
使用的代码:
public function linearTwoAxis($data, $fileName, $startColor = 0)
{
$pData = new \pData();
$i = 0;
foreach ($data as $key => $row)
{
$serie = $this->translator->trans("pages.reportDefault.$key");
$pData->addPoints($row, $serie);
$pData->setSerieOnAxis($serie, $i);
$pData->setSerieWeight($serie, 1);
$pData->setAxisName($i, $serie);
$pData->setPalette($serie, $this->colors[$startColor++]);
$pData->setAxisDisplay($i, AXIS_FORMAT_METRIC);
$i++;
}
$monthNames = array_keys($row);
$pData->setAxisPosition(1, AXIS_POSITION_RIGHT);
$pData->addPoints($monthNames, "Labels");
$pData->setAbscissa("Labels");
$pChart = new \pImage(750, 200, $pData);
$pChart->setFontProperties(array(
"FontName" => $this->fonts_dir . "arial.ttf",
"FontSize" => 8)
);
$pChart->setGraphArea(50, 10, 700, 150);
$pChart->Antialias = TRUE;
$pChart->drawScale(["Mode" => SCALE_MODE_START0]); …Run Code Online (Sandbox Code Playgroud) 如何使用opencv检测图像中的热点?我试过谷歌搜索,但无法得到它的线索.
描述: 我需要从实时视频流中过滤出好的图像.在这种情况下,我需要只检测帧中的热点.我需要在opencv中这样做.
什么是HotSpot?
热点是拍摄对象脸部的闪亮区域,这些区域是由闪光反射光亮表面或不均匀照明引起的.它倾向于使受试者看起来好像在出汗,这不是一个好看的样子.
更新: http ://answers.opencv.org/question/7223/hotspots-in-an-image/ http://en.wikipedia.org/wiki/Specular_highlight
以上两个链接也可以帮助我的帖子?
使用HotSpot的图像:

没有HotSpot的图像:

我用imagepng函数PHP来调整图片大小.在当前代码中,我没有指定quality参数.
imagepng($im_dest, $destfile);
Run Code Online (Sandbox Code Playgroud)
但现在我想用它来根据用户的需求增加或减少质量.要做到这一点,我需要知道这个函数中质量参数的默认值是什么,但不幸的是,我在php.net网站上找不到.
你知道什么是default价值吗?quality参数是否会极大地影响输出尺寸和质量?
还有一个问题:在其他地方,我调整上传的图像(缩小到原始大小),以确保没有附加任何恶意脚本.这是一个好习惯还是没必要?
非常感谢你的帮助.
我有一个SVG画布,用户可以选择并调整其中的一些<image>元素.我使用preserveAspectRatio="xMidYMid meet"属性值来保持原始宽高比.原始图像源大多是256x256px大小.在Firefox和IE-11上,当我将<image>元素调整为比原始大小更小的尺寸时,它们看起来非常像素化.在Chrome上,它们看起来非常流畅.我想知道是否有任何css或svg功能可以帮助我让它们在Firefox和IE上看起来更流畅.
谢谢.
编辑:添加样品..
https://jsfiddle.net/p8km6nhc/7/
<svg viewBox="-170 -87 1678 869" style="width: 100%; height: 100%; overflow: hidden; left: 0px; top: -0.800003px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<filter id="varlikItemShadow1">
<feGaussianBlur stdDeviation="3" in="SourceGraphic"></feGaussianBlur>
<feOffset dy="1" dx="1"></feOffset>
<feMerge>
<feMergeNode></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g>
<g transform="matrix(1,0,0,1,0,0)">
<g transform="matrix(1,0,0,1,158,256)">
<g title="" data-original-title="" data-rounded="yes">
<text style="font:0px arial;" x="0" y="1" stroke="none" transform="matrix(1,0,0,1,0,0)" fill="#ffffff" fill-opacity="0.111111">[[VarlikId=3999]]</text>
<rect filter="url(#varlikItemShadow1" stroke="#2b5987" stroke-width="2" fill-opacity="0.9" fill="#ffe8f6" ry="10" rx="10" y="0" x="0" height="140" width="1270"></rect>
<path d="M0 0 …Run Code Online (Sandbox Code Playgroud) 我正在使用getDrawingCache()方法捕获我的布局视图并从中创建图像。代码运行良好并生成图像,但这里的问题是,生成的图像质量非常低。我希望生成的图像的分辨率很高,这样无论何时我设置ImageView它都不会被拉伸。
这是我正在使用的代码:
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setDrawingCacheEnabled(true);
Bitmap bmp = layout.getDrawingCache();
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + System.currentTimeMillis()+".jpg");
try {
FileOutputStream out = new FileOutputStream(f);
bmp.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
PS -我也试过在打电话之前使用layout.buildDrawingCache(true);和layout.setDrawingCacheQuality(RelativeLayout.DRAWING_CACHE_QUALITY_HIGH);,layout.getDrawingCache();但没有发现质量有任何变化。
任何人都可以帮我解决这个问题,我怎样才能提高生成的图像的质量?提前致谢。
我在我的android应用程序中使用Gallery View.所有图像都来自url,所以我在GalleryView中使用LazyLoader进行图像加载.画廊完全填充.但它失去了图像质量..我想填充画廊没有图像质量丢失..请帮助我..
android lazy-loading image-gallery android-gallery image-quality
Bitmap clip = new Bitmap((int)(8.5 * 72), (int)(11 * 72));
MemoryStream stream = new MemoryStream();
clip.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
byte[] bytes = stream.ToArray();
Run Code Online (Sandbox Code Playgroud)
我跑了它在我的机器上,并且bytes.Length是8587,我的同事开发的机器是2009.据说,.NET没有办法影响PNG压缩的质量(或者说这种情况下的比率).这个特殊的图像是空白的,我还有其他测试与内容图像一起工作,他们确认压缩是无损的(我遇到了一些争论,这是一个问题).
但即使压缩是无损的,压缩算法运行时间+ CPU利用率与压缩率/质量之间也需要权衡.我想知道如何System.Drawing.Imaging确定质量,因为上述情况清楚地表明可能存在差异.我怎么能确定在客户的机器上它不会选择100%的质量(这将产生1.457.337大小的文件)?
相关材料:
附加信息:
我试图以最快的方式以编程方式降低图像的质量.现在,我能够读取图像byte[],然后作为一个MemoryStream读它Bitmap,并通过Drawing.Imaging.Encoder.Quality保存在需要时改变其质量20L.
我想知道是否有办法在不保存整个图像的情况下执行此操作.有没有办法只更改位图bmp1,或创建一个会降低图像质量的新位图?
byte[] imageBytes = convertImageToByteArray(bmpScreenshot);
MemoryStream mem = new MemoryStream(imageBytes);
using (Bitmap bmp1 = (Bitmap)Image.FromStream(mem))
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo jgpEncoder = codecs[1];
System.Drawing.Imaging.Encoder myEncoder =
System.Drawing.Imaging.Encoder.Quality;
myEncoderParameter = new EncoderParameter(myEncoder, 20L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"C:\TestPhotoQuality20L.jpg", jgpEncoder, myEncoderParameters);
}
Run Code Online (Sandbox Code Playgroud) 我有一些代码,允许用户使用文件选择器选择图像,我将图像转换为字节数组,以便可以序列化.查看图像集时,如果我有太多,则应用程序崩溃并且不会加载.当我使用视觉工作室进行调试时,它会运行罚款但需要很长时间来加载图像.我相信它会超时,因为它需要很长时间才能加载.获取存储文件后.如何降低BitmapImage的质量,以便在序列化时加载时间不长?
private async void AddPic_OnClick(object sender, RoutedEventArgs e)
{
ImagePath = string.Empty;
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Clear();
openPicker.FileTypeFilter.Add(".bmp");
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
// Launch file open picker and caller app is suspended and may be terminated
var file = await openPicker.PickSingleFileAsync();
if (file != null)
{
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
var image = new BitmapImage();
image.SetSource(stream);
xamlimg.Source = image;
_myClass.ImageBytes = await App.DataModel.GetBytesAsync(file);
}
}
Run Code Online (Sandbox Code Playgroud)
其他课程详情:
public BitmapImage Image
{
get
{
if …Run Code Online (Sandbox Code Playgroud) 我在尝试使用 Android 应用程序将照片保存到存储时遇到问题。该应用程序使用设备相机拍摄照片并将其以 PNG 格式保存到设备。
由于某种原因,无论我做什么或将图像存储在哪里,质量都很差。该应用程序是一个相当大的现有项目,因此我想知道将图像保存到设备时是否需要考虑其他因素,或者可能是另一种覆盖质量的方法。
这是以前的开发人员编写的函数:
public String saveImageToDevice(Bitmap image) {
saveCanvasImage(image);
String root = Environment.getExternalStorageDirectory().toString()+"/Android/data/com.app.android";
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String fname = "Image-"+ timeStamp +".png";
File file = new File (myDir, fname);
if (file.exists ()){
file.delete ();
}
try {
Toast.makeText(getActivity(), "Saving Image...", Toast.LENGTH_SHORT).show();
Log.i("Image saved", root+"/saved_images/"+fname);
FileOutputStream out = new FileOutputStream(file);
image.compress(CompressFormat.PNG, 100, out);
imageLocations.add(fname);
out.flush();
out.close();
//return myDir.getAbsolutePath() + "/" +fname;
return fname;
} catch (Exception …Run Code Online (Sandbox Code Playgroud)